mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
init: call telinit in case we are run as init and not pid1
This commit is contained in:
parent
629c210d3f
commit
2cb1a60d14
@ -44,6 +44,7 @@ AM_CPPFLAGS = \
|
||||
-DSESSION_DATA_UNIT_PATH=\"$(sessionunitdir)\" \
|
||||
-DCGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \
|
||||
-DSYSTEMD_BINARY_PATH=\"$(rootbindir)/systemd\" \
|
||||
-DSYSTEMCTL_BINARY_PATH=\"$(rootbindir)/systemctl\" \
|
||||
-I $(top_srcdir)/src
|
||||
|
||||
rootbin_PROGRAMS = \
|
||||
|
2
fixme
2
fixme
@ -73,8 +73,6 @@
|
||||
|
||||
* /sbin/shutdown argv[2..] message
|
||||
|
||||
* exec /sbin/telinit from init
|
||||
|
||||
* discuss NOTIFY_SOCKET, make it configurable? security implications?
|
||||
|
||||
Regularly:
|
||||
|
10
src/main.c
10
src/main.c
@ -610,6 +610,16 @@ int main(int argc, char *argv[]) {
|
||||
FDSet *fds = NULL;
|
||||
bool reexecute = false;
|
||||
|
||||
if (getpid() != 1 && strstr(program_invocation_short_name, "init")) {
|
||||
/* This is compatbility support for SysV, where
|
||||
* calling init as a user is identical to telinit. */
|
||||
|
||||
errno = -ENOENT;
|
||||
execv(SYSTEMCTL_BINARY_PATH, argv);
|
||||
log_error("Failed to exec " SYSTEMCTL_BINARY_PATH ": %m");
|
||||
return 1;
|
||||
}
|
||||
|
||||
log_show_color(true);
|
||||
log_show_location(false);
|
||||
log_set_max_level(LOG_DEBUG);
|
||||
|
Loading…
Reference in New Issue
Block a user