mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-01-13 07:26:30 +07:00
service: stop the service if ExecStartPost ends with a failure
The handling of failures in ExecStartPost is inconsistent. If the command times out, the service is stopped. But if the command exits with a failure, the service keeps running. It makes more sense to stop the service when ExecStartPost fails. If this behaviour is not desired, the ExecStartPost command can be prefixed with "-".
This commit is contained in:
parent
3a11183858
commit
2096e009a7
@ -2870,20 +2870,22 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
|
||||
break;
|
||||
|
||||
case SERVICE_START_POST:
|
||||
if (success) {
|
||||
if (s->pid_file) {
|
||||
int r = service_load_pid_file(s, true);
|
||||
if (r < 0) {
|
||||
r = service_demand_pid_file(s);
|
||||
if (r < 0 || !cgroup_good(s))
|
||||
service_enter_stop(s, false);
|
||||
break;
|
||||
}
|
||||
} else
|
||||
service_search_main_pid(s);
|
||||
if (!success) {
|
||||
service_enter_stop(s, false);
|
||||
break;
|
||||
}
|
||||
|
||||
s->reload_failure = !success;
|
||||
if (s->pid_file) {
|
||||
int r = service_load_pid_file(s, true);
|
||||
if (r < 0) {
|
||||
r = service_demand_pid_file(s);
|
||||
if (r < 0 || !cgroup_good(s))
|
||||
service_enter_stop(s, false);
|
||||
break;
|
||||
}
|
||||
} else
|
||||
service_search_main_pid(s);
|
||||
|
||||
service_enter_running(s, true);
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user