init: halt on SIGPWR too
Most init processes implement a handler for SIGPWR that gracefully stops all child processes when shutting down a machine. Some other technologies rely on this signal - e.g. Busybox powered LXC containers. This patch makes busybox init halt when receiving SIGPWR. Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
cffe28ef87
commit
760fc6debc
@ -789,7 +789,7 @@ static void run_shutdown_and_kill_processes(void)
|
|||||||
* and only one will be remembered and acted upon.
|
* and only one will be remembered and acted upon.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* The SIGUSR[12]/SIGTERM handler */
|
/* The SIGPWR/SIGUSR[12]/SIGTERM handler */
|
||||||
static void halt_reboot_pwoff(int sig) NORETURN;
|
static void halt_reboot_pwoff(int sig) NORETURN;
|
||||||
static void halt_reboot_pwoff(int sig)
|
static void halt_reboot_pwoff(int sig)
|
||||||
{
|
{
|
||||||
@ -1104,7 +1104,7 @@ int init_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
/* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
|
/* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
|
||||||
* then parse_inittab() simply adds in some default
|
* then parse_inittab() simply adds in some default
|
||||||
* actions (i.e., INIT_SCRIPT and a pair
|
* actions (i.e., INIT_SCRIPT and a pair
|
||||||
* of "askfirst" shells */
|
* of "askfirst" shells) */
|
||||||
parse_inittab();
|
parse_inittab();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1135,6 +1135,7 @@ int init_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
struct sigaction sa;
|
struct sigaction sa;
|
||||||
|
|
||||||
bb_signals(0
|
bb_signals(0
|
||||||
|
+ (1 << SIGPWR) /* halt */
|
||||||
+ (1 << SIGUSR1) /* halt */
|
+ (1 << SIGUSR1) /* halt */
|
||||||
+ (1 << SIGTERM) /* reboot */
|
+ (1 << SIGTERM) /* reboot */
|
||||||
+ (1 << SIGUSR2) /* poweroff */
|
+ (1 << SIGUSR2) /* poweroff */
|
||||||
|
Loading…
Reference in New Issue
Block a user