diff options
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 @@ -1389,12 +1389,15 @@ prog_start (struct prog *prog) disable_socket (prog->v.p.socket); } else if (prog->v.p.comp->mode == pies_comp_accept || 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)); } } @@ -2489,16 +2492,20 @@ progman_cleanup (int expect_term) react (listener, status, pid); if (listener->v.p.comp->flags & CF_WAIT) enable_socket (listener->v.p.socket); } 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) react (prog, status, pid); } break; |