[git commit] init: halt on SIGPWR too

Denys Vlasenko vda.linux at googlemail.com
Tue Nov 26 12:54:48 UTC 2013


commit: http://git.busybox.net/busybox/commit/?id=760fc6debcba8cb5ca8d8e2252fac3757c453e11
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

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 at freescale.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 init/init.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/init/init.c b/init/init.c
index c63bba1..d29328c 100644
--- a/init/init.c
+++ b/init/init.c
@@ -789,7 +789,7 @@ static void run_shutdown_and_kill_processes(void)
  * 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)
 {
@@ -1103,8 +1103,8 @@ int init_main(int argc UNUSED_PARAM, char **argv)
 
 		/* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
 		 * then parse_inittab() simply adds in some default
-		 * actions(i.e., INIT_SCRIPT and a pair
-		 * of "askfirst" shells */
+		 * actions (i.e., INIT_SCRIPT and a pair
+		 * of "askfirst" shells) */
 		parse_inittab();
 	}
 
@@ -1135,6 +1135,7 @@ int init_main(int argc UNUSED_PARAM, char **argv)
 		struct sigaction sa;
 
 		bb_signals(0
+			+ (1 << SIGPWR)  /* halt */
 			+ (1 << SIGUSR1) /* halt */
 			+ (1 << SIGTERM) /* reboot */
 			+ (1 << SIGUSR2) /* poweroff */


More information about the busybox-cvs mailing list