X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fservice.c;h=ae8a763e7c1647c495e9d2dcd8202949b75ed41f;hp=04ed6843935e6b719cc74c06b49463646574435a;hb=b58b41160fde88a82cba1ddec4be7dfb08825e35;hpb=14ad1d1437f51b8ebc8dc6e8d3707b41d48d0a3a diff --git a/src/service.c b/src/service.c index 04ed68439..ae8a763e7 100644 --- a/src/service.c +++ b/src/service.c @@ -144,6 +144,8 @@ static int service_set_main_pid(Service *s, pid_t pid) { s->main_pid = pid; s->main_pid_known = true; + exec_status_start(&s->main_exec_status, pid); + return 0; } @@ -2082,7 +2084,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { if (s->main_pid == pid) { - exec_status_fill(&s->main_exec_status, pid, code, status); + exec_status_exit(&s->main_exec_status, pid, code, status); s->main_pid = 0; if (s->type != SERVICE_FORKING) { @@ -2138,7 +2140,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { } else if (s->control_pid == pid) { if (s->control_command) - exec_status_fill(&s->control_command->exec_status, pid, code, status); + exec_status_exit(&s->control_command->exec_status, pid, code, status); s->control_pid = 0;