We stay in the SERVICE_START while no READY=1 notification message has
been received. When we are in the SERVICE_START_POST state, we have
already received a ready notification. Hence we should not fail when the
cgroup becomes empty in that state.
* SIGCHLD for. */
case SERVICE_START:
- case SERVICE_START_POST:
- if (s->type == SERVICE_NOTIFY)
+ if (s->type == SERVICE_NOTIFY) {
/* No chance of getting a ready notification anymore */
service_enter_signal(s, SERVICE_FINAL_SIGTERM, SERVICE_FAILURE_PROTOCOL);
- else if (s->pid_file_pathspec) {
+ break;
+ }
+
+ /* Fall through */
+
+ case SERVICE_START_POST:
+ if (s->pid_file_pathspec) {
/* Give up hoping for the daemon to write its PID file */
log_unit_warning(u, "Daemon never wrote its PID file. Failing.");