mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-02-14 01:57:27 +03:00
initctl: support 'telinit u/q'
We send SIGTERM (resp., SIGHUP) when we receive request for changing to runlevel 'u' (resp., 'q'). As initctl is already async, we just send the signals rather than first attempting to connect to sytemd over dbus and then falling back to kill.
This commit is contained in:
parent
cc9784c6d1
commit
46e964c5ce
@ -165,7 +165,24 @@ static void request_process(Server *s, const struct init_request *req) {
|
||||
if (!isprint(req->runlevel))
|
||||
log_error("Got invalid runlevel. Ignoring.");
|
||||
else
|
||||
change_runlevel(s, req->runlevel);
|
||||
switch (req->runlevel) {
|
||||
|
||||
/* we are async anyway, so just use kill for reexec/reload */
|
||||
case 'u':
|
||||
case 'U':
|
||||
if (kill(1, SIGTERM) < 0)
|
||||
log_error("kill() failed: %m");
|
||||
break;
|
||||
|
||||
case 'q':
|
||||
case 'Q':
|
||||
if (kill(1, SIGHUP) < 0)
|
||||
log_error("kill() failed: %m");
|
||||
break;
|
||||
|
||||
default:
|
||||
change_runlevel(s, req->runlevel);
|
||||
}
|
||||
return;
|
||||
|
||||
case INIT_CMD_POWERFAIL:
|
||||
|
Loading…
x
Reference in New Issue
Block a user