Merge "Revert "init: make reboot_on_failure not apply to manually stopped services""
This commit is contained in:
commit
e080240b26
3 changed files with 3 additions and 10 deletions
|
|
@ -277,8 +277,6 @@ runs the service.
|
|||
CLD_EXITED or an status other than '0', reboot the system with the target specified in
|
||||
_target_. _target_ takes the same format as the parameter to sys.powerctl. This is particularly
|
||||
intended to be used with the `exec_start` builtin for any must-have checks during boot.
|
||||
A service being stopped by init (e.g. using the `stop` or `class_reset` commands) is not
|
||||
considered a failure for the purpose of this setting.
|
||||
|
||||
`restart_period <seconds>`
|
||||
> If a non-oneshot service exits, it will be restarted at its start time plus
|
||||
|
|
|
|||
|
|
@ -194,8 +194,6 @@ void Service::KillProcessGroup(int signal, bool report_oneshot) {
|
|||
<< ") process group...";
|
||||
int max_processes = 0;
|
||||
int r;
|
||||
|
||||
flags_ |= SVC_STOPPING;
|
||||
if (signal == SIGTERM) {
|
||||
r = killProcessGroupOnce(proc_attr_.uid, pid_, signal, &max_processes);
|
||||
} else {
|
||||
|
|
@ -279,8 +277,7 @@ void Service::Reap(const siginfo_t& siginfo) {
|
|||
f(siginfo);
|
||||
}
|
||||
|
||||
if ((siginfo.si_code != CLD_EXITED || siginfo.si_status != 0) && on_failure_reboot_target_ &&
|
||||
!(flags_ & SVC_STOPPING)) {
|
||||
if ((siginfo.si_code != CLD_EXITED || siginfo.si_status != 0) && on_failure_reboot_target_) {
|
||||
LOG(ERROR) << "Service with 'reboot_on_failure' option failed, shutting down system.";
|
||||
trigger_shutdown(*on_failure_reboot_target_);
|
||||
}
|
||||
|
|
@ -290,7 +287,7 @@ void Service::Reap(const siginfo_t& siginfo) {
|
|||
if (flags_ & SVC_TEMPORARY) return;
|
||||
|
||||
pid_ = 0;
|
||||
flags_ &= ~(SVC_RUNNING | SVC_STOPPING);
|
||||
flags_ &= (~SVC_RUNNING);
|
||||
start_order_ = 0;
|
||||
|
||||
// Oneshot processes go into the disabled state on exit,
|
||||
|
|
@ -414,8 +411,7 @@ Result<void> Service::Start() {
|
|||
bool disabled = (flags_ & (SVC_DISABLED | SVC_RESET));
|
||||
// Starting a service removes it from the disabled or reset state and
|
||||
// immediately takes it out of the restarting state if it was in there.
|
||||
flags_ &= (~(SVC_DISABLED | SVC_RESTARTING | SVC_RESET | SVC_RESTART | SVC_DISABLED_START |
|
||||
SVC_STOPPING));
|
||||
flags_ &= (~(SVC_DISABLED|SVC_RESTARTING|SVC_RESET|SVC_RESTART|SVC_DISABLED_START));
|
||||
|
||||
// Running processes require no additional work --- if they're in the
|
||||
// process of exiting, we've ensured that they will immediately restart
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@
|
|||
// should not be killed during shutdown
|
||||
#define SVC_TEMPORARY 0x1000 // This service was started by 'exec' and should be removed from the
|
||||
// service list once it is reaped.
|
||||
#define SVC_STOPPING 0x2000 // service is being stopped by init
|
||||
|
||||
#define NR_SVC_SUPP_GIDS 12 // twelve supplementary groups
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue