X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fservice.c;h=4dcd306009788cbd8962009b707fcfa2e5d6fda4;hb=131a4dcfd4375f235a1f512339c0909e8bcc730b;hp=0a5c35ec96b7bcff45f0ecdf796ebb818f30b95f;hpb=595ed347a87e69893c5e72168fc2e94a7cb09e73;p=elogind.git diff --git a/src/service.c b/src/service.c index 0a5c35ec9..4dcd30600 100644 --- a/src/service.c +++ b/src/service.c @@ -147,6 +147,17 @@ static void service_unwatch_main_pid(Service *s) { s->main_pid = 0; } +static void service_unwatch_pid_file(Service *s) { + if (!s->pid_file_pathspec) + return; + + log_debug("Stopping watch for %s's PID file %s", UNIT(s)->id, s->pid_file_pathspec->path); + path_spec_unwatch(s->pid_file_pathspec, UNIT(s)); + path_spec_done(s->pid_file_pathspec); + free(s->pid_file_pathspec); + s->pid_file_pathspec = NULL; +} + static int service_set_main_pid(Service *s, pid_t pid) { pid_t ppid; @@ -222,6 +233,7 @@ static void service_done(Unit *u) { * our resources */ service_unwatch_main_pid(s); service_unwatch_control_pid(s); + service_unwatch_pid_file(s); if (s->bus_name) { unit_unwatch_bus_name(u, s->bus_name); @@ -1389,17 +1401,6 @@ static void service_notify_sockets_dead(Service *s) { return; } -static void service_unwatch_pid_file(Service *s) { - if (!s->pid_file_pathspec) - return; - - log_debug("Stopping watch for %s's PID file %s", UNIT(s)->id, s->pid_file_pathspec->path); - path_spec_unwatch(s->pid_file_pathspec, UNIT(s)); - path_spec_done(s->pid_file_pathspec); - free(s->pid_file_pathspec); - s->pid_file_pathspec = NULL; -} - static void service_set_state(Service *s, ServiceState state) { ServiceState old_state; assert(s);