diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-06-04 22:05:59 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-06-04 22:05:59 +0200 |
commit | 0b9ee5867b3218a3cb15f5902c47f5d839612608 (patch) | |
tree | 734f20c332cfb3d0be058774ed80397578c1df7f /src/service.c | |
parent | 8ffc5c2f48c242d2850d6a2f8f2ef69cd5ab9a47 (diff) | |
parent | 6dded4c70528150a771f51ce6f15a22c39df9109 (diff) |
Merge branch 'master' of ssh://git.freedesktop.org/git/systemd
Diffstat (limited to 'src/service.c')
-rw-r--r-- | src/service.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/service.c b/src/service.c index c276a9a276..8b1fab785a 100644 --- a/src/service.c +++ b/src/service.c @@ -1963,14 +1963,18 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { break; case SERVICE_START: - assert(s->type == SERVICE_FINISH); + if (s->type == SERVICE_FINISH) { + /* This was our main goal, so let's go on */ + if (success) + service_enter_start_post(s); + else + service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); + break; + } else { + assert(s->type == SERVICE_DBUS); - /* This was our main goal, so let's go on */ - if (success) - service_enter_start_post(s); - else - service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); - break; + /* Fall through */ + } case SERVICE_RUNNING: service_enter_running(s, success); |