aboutsummaryrefslogtreecommitdiff
path: root/src/progman.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2013-01-05 11:56:51 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2013-01-05 11:56:51 +0200
commit4f7c28158308563dcad912d87a0031d095d4690a (patch)
treef8badf11119135268fb58b77e86667b12d0f090c /src/progman.c
parentd8221ce9bdd2d7ae6162bed0e1c85e9f7a3ff8f2 (diff)
downloadpies-4f7c28158308563dcad912d87a0031d095d4690a.tar.gz
pies-4f7c28158308563dcad912d87a0031d095d4690a.tar.bz2
Write utmp/wtmp records in sysvinit mode.
* configure.ac: Check for utmp.h, utmpx.h * src/utmp.c: New file. * src/Makefile.am: Add utmp.c * src/pies.h (sysvinit_acct): New proto. * src/progman.c (prog_start, progman_cleanup): Call sysvinit_acct. * src/sysvinit.c (inittrans): Call sysvinit_acct. Set proctitle.
Diffstat (limited to 'src/progman.c')
-rw-r--r--src/progman.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/progman.c b/src/progman.c
index 15b8c44..97216b8 100644
--- a/src/progman.c
+++ b/src/progman.c
@@ -1392,6 +1392,9 @@ prog_start (struct prog *prog)
prog->v.p.comp->mode == pies_comp_inetd ||
prog->v.p.comp->mode == pies_comp_pass_fd)
close (prog->v.p.socket);
+ else if (is_sysvinit (prog->v.p.comp))
+ sysvinit_acct (SYSV_ACCT_PROC_START, "", prog->tag, pid, "");
+
prog->pid = pid;
prog->v.p.status = status_enabled;
debug (1, (_("%s started, pid=%lu"), prog->tag, (unsigned long) pid));
@@ -2492,10 +2495,14 @@ progman_cleanup (int expect_term)
}
else if (prog->v.p.comp->mode >= pies_mark_sysvinit)
{
+ sysvinit_acct (SYSV_ACCT_PROC_STOP, "", prog->tag, pid, "");
prog->v.p.status = status_finished;
}
else
{
+ if (is_sysvinit (prog->v.p.comp))
+ sysvinit_acct (SYSV_ACCT_PROC_STOP, "", prog->tag, pid, "");
+
prog->v.p.status = status_enabled;
prog_stop_dependents (prog);
if (!expect_term)

Return to:

Send suggestions and report system problems to the System administrator.