summaryrefslogtreecommitdiff
path: root/manager.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-04-13 02:36:56 +0200
committerLennart Poettering <lennart@poettering.net>2010-04-13 02:36:56 +0200
commit57c0c30e735ef2a2d44a9aa0032a22ea8d089ced (patch)
tree88fb5483f3c9c26cb9135f1d7601f1378e76515f /manager.c
parenta337c6fcee2ab43bf791968f265a0a937715a3ff (diff)
manager: we are not interested in SIGSTOP notifications
Diffstat (limited to 'manager.c')
-rw-r--r--manager.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/manager.c b/manager.c
index 36733b0eb5..e7c66099a4 100644
--- a/manager.c
+++ b/manager.c
@@ -72,9 +72,16 @@ static int enable_special_signals(Manager *m) {
static int manager_setup_signals(Manager *m) {
sigset_t mask;
struct epoll_event ev;
+ struct sigaction sa;
assert(m);
+ /* We are not interested in SIGSTOP and friends. */
+ zero(sa);
+ sa.sa_handler = SIG_DFL;
+ sa.sa_flags = SA_NOCLDSTOP|SA_RESTART;
+ assert_se(sigaction(SIGCHLD, &sa, NULL) == 0);
+
assert_se(sigemptyset(&mask) == 0);
assert_se(sigaddset(&mask, SIGCHLD) == 0);
assert_se(sigaddset(&mask, SIGINT) == 0); /* Kernel sends us this on control-alt-del */