projects
/
project
/
procd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
service: add support for instances without command
[project/procd.git]
/
signal.c
diff --git
a/signal.c
b/signal.c
index
12eedc8
..
07dda9a
100644
(file)
--- a/
signal.c
+++ b/
signal.c
@@
-35,7
+35,9
@@
static void signal_shutdown(int signal, siginfo_t *siginfo, void *data)
int event = 0;
char *msg = NULL;
int event = 0;
char *msg = NULL;
+#ifndef DISABLE_INIT
switch(signal) {
switch(signal) {
+ case SIGINT:
case SIGTERM:
event = RB_AUTOBOOT;
msg = "reboot";
case SIGTERM:
event = RB_AUTOBOOT;
msg = "reboot";
@@
-46,6
+48,7
@@
static void signal_shutdown(int signal, siginfo_t *siginfo, void *data)
msg = "poweroff";
break;
}
msg = "poweroff";
break;
}
+#endif
DEBUG(1, "Triggering %s\n", msg);
if (event)
DEBUG(1, "Triggering %s\n", msg);
if (event)
@@
-84,6
+87,7
@@
void procd_signal(void)
if (getpid() != 1)
return;
sigaction(SIGTERM, &sa_shutdown, NULL);
if (getpid() != 1)
return;
sigaction(SIGTERM, &sa_shutdown, NULL);
+ sigaction(SIGINT, &sa_shutdown, NULL);
sigaction(SIGUSR1, &sa_shutdown, NULL);
sigaction(SIGUSR2, &sa_shutdown, NULL);
sigaction(SIGSEGV, &sa_crash, NULL);
sigaction(SIGUSR1, &sa_shutdown, NULL);
sigaction(SIGUSR2, &sa_shutdown, NULL);
sigaction(SIGSEGV, &sa_crash, NULL);
@@
-91,5
+95,7
@@
void procd_signal(void)
sigaction(SIGHUP, &sa_dummy, NULL);
sigaction(SIGKILL, &sa_dummy, NULL);
sigaction(SIGSTOP, &sa_dummy, NULL);
sigaction(SIGHUP, &sa_dummy, NULL);
sigaction(SIGKILL, &sa_dummy, NULL);
sigaction(SIGSTOP, &sa_dummy, NULL);
+#ifndef DISABLE_INIT
reboot(RB_DISABLE_CAD);
reboot(RB_DISABLE_CAD);
+#endif
}
}