started();
}
else {
+ stop_reason = stopped_reason_t::FAILED;
failed_to_start();
}
}
return;
}
else {
+ stop_reason = stopped_reason_t::TERMINATED;
emergency_stop();
}
services->process_queues();
{
log(loglevel_t::ERROR, get_name(), ": execution failed: ", strerror(errcode));
if (get_state() == service_state_t::STARTING) {
+ stop_reason = stopped_reason_t::EXECFAILED;
failed_to_start();
}
else {
// Process service in smooth recovery:
+ stop_reason = stopped_reason_t::TERMINATED;
emergency_stop();
}
}
if (need_stop) {
// Failed startup: no auto-restart.
+ stop_reason = stopped_reason_t::TERMINATED;
emergency_stop();
services->process_queues();
}
switch (pid_result) {
case pid_result_t::FAILED:
// Failed startup: no auto-restart.
+ stop_reason = stopped_reason_t::FAILED;
failed_to_start();
break;
case pid_result_t::TERMINATED:
}
}
else {
+ stop_reason = stopped_reason_t::FAILED;
failed_to_start();
}
}
start_explicit = false;
release(false);
}
+ stop_reason = stopped_reason_t::TERMINATED;
forced_stop();
stop_dependents();
stopped();
{
log(loglevel_t::ERROR, get_name(), ": execution failed: ", strerror(errcode));
// Only time we execute is for startup:
+ stop_reason = stopped_reason_t::EXECFAILED;
failed_to_start();
}
log(loglevel_t::ERROR, "Service ", get_name(), " command terminated due to signal ",
exit_status.get_term_sig());
}
+ stop_reason = stopped_reason_t::FAILED;
failed_to_start();
}
services->process_queues();
log(loglevel_t::ERROR, get_name(), ": execution failed: ", strerror(errcode));
auto service_state = get_state();
if (service_state == service_state_t::STARTING) {
+ stop_reason = stopped_reason_t::EXECFAILED;
failed_to_start();
}
else if (service_state == service_state_t::STOPPING) {