X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fservice.c;h=ac8cdb2c31622a74d1063389b3069f4a8c527ad0;hb=a016b9228f338cb9b380ce7e00826ef462767d98;hp=20990d2a19bfcd97e0c8dc7f5bfdf612c33f84e7;hpb=af4713396cff773beb56fef23cd8a9a3803670ab;p=elogind.git diff --git a/src/core/service.c b/src/core/service.c index 20990d2a1..ac8cdb2c3 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1225,6 +1225,10 @@ static int service_load(Unit *u) { if (r < 0) return r; + r = unit_add_default_slice(u); + if (r < 0) + return r; + r = unit_add_default_cgroups(u); if (r < 0) return r; @@ -1865,7 +1869,7 @@ static int main_pid_good(Service *s) { /* If it's an alien child let's check if it is still * alive ... */ - if (s->main_pid_alien) + if (s->main_pid_alien && s->main_pid > 0) return kill(s->main_pid, 0) >= 0 || errno != ESRCH; /* .. otherwise assume we'll get a SIGCHLD for it,