diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-01-05 11:56:51 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-01-05 11:56:51 +0200 |
commit | 4f7c28158308563dcad912d87a0031d095d4690a (patch) | |
tree | f8badf11119135268fb58b77e86667b12d0f090c /src/progman.c | |
parent | d8221ce9bdd2d7ae6162bed0e1c85e9f7a3ff8f2 (diff) | |
download | pies-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.c | 7 |
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) |