1
1
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:
Tom Gundersen 2011-07-30 18:23:10 +02:00 committed by Lennart Poettering
parent cc9784c6d1
commit 46e964c5ce

View File

@ -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: