Browse Source

procd: add SIGPWR as signal

to use procd in LXC containers they have to support SIGPWR to shutdown.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Paul Spooren 5 years ago
parent
commit
cfaed5630c
2 changed files with 3 additions and 0 deletions
  1. 1 0
      initd/init.c
  2. 2 0
      signal.c

+ 1 - 0
initd/init.c

@@ -77,6 +77,7 @@ main(int argc, char **argv)
 	sigaction(SIGTERM, &sa_shutdown, NULL);
 	sigaction(SIGUSR1, &sa_shutdown, NULL);
 	sigaction(SIGUSR2, &sa_shutdown, NULL);
+	sigaction(SIGPWR, &sa_shutdown, NULL);
 
 	early();
 	cmdline();

+ 2 - 0
signal.c

@@ -44,6 +44,7 @@ static void signal_shutdown(int signal, siginfo_t *siginfo, void *data)
 		break;
 	case SIGUSR1:
 	case SIGUSR2:
+	case SIGPWR:
 		event = RB_POWER_OFF;
 		msg = "poweroff";
 		break;
@@ -90,6 +91,7 @@ void procd_signal(void)
 	sigaction(SIGINT, &sa_shutdown, NULL);
 	sigaction(SIGUSR1, &sa_shutdown, NULL);
 	sigaction(SIGUSR2, &sa_shutdown, NULL);
+	sigaction(SIGPWR, &sa_shutdown, NULL);
 	sigaction(SIGSEGV, &sa_crash, NULL);
 	sigaction(SIGBUS, &sa_crash, NULL);
 	sigaction(SIGHUP, &sa_dummy, NULL);