halt/reboot/poweroff: add a CONFIG_xxx to act SysV compatibly
Signed-off-by: Alexander Shishkin <virtuoso@slind.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
committed by
Denys Vlasenko
parent
d1090c91cc
commit
97af2ff8ca
18
init/halt.c
18
init/halt.c
@ -85,6 +85,8 @@ int halt_main(int argc UNUSED_PARAM, char **argv)
|
||||
//TODO: I tend to think that signalling linuxrc is wrong
|
||||
// pity original author didn't comment on it...
|
||||
if (ENABLE_FEATURE_INITRD) {
|
||||
/* talk to linuxrc */
|
||||
/* bbox init/linuxrc assumed */
|
||||
pid_t *pidlist = find_pid_by_name("linuxrc");
|
||||
if (pidlist[0] > 0)
|
||||
rc = kill(pidlist[0], signals[which]);
|
||||
@ -92,7 +94,21 @@ int halt_main(int argc UNUSED_PARAM, char **argv)
|
||||
free(pidlist);
|
||||
}
|
||||
if (rc) {
|
||||
rc = kill(1, signals[which]);
|
||||
/* talk to init */
|
||||
if (!ENABLE_FEATURE_CALL_TELINIT) {
|
||||
/* bbox init assumed */
|
||||
rc = kill(1, signals[which]);
|
||||
} else {
|
||||
/* SysV style init assumed */
|
||||
/* runlevels:
|
||||
* 0 == shutdown
|
||||
* 6 == reboot */
|
||||
rc = execlp(CONFIG_TELINIT_PATH,
|
||||
CONFIG_TELINIT_PATH,
|
||||
which == 2 ? "6" : "0",
|
||||
(char *)NULL
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
rc = reboot(magic[which]);
|
||||
|
Reference in New Issue
Block a user