X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fexecute.c;h=1b37f2efe45c122b0b7a7c9aecb515318f2ca998;hp=06eb15215df5f486c18e82e0e22c6303c9175ea7;hb=9a57a1fdd6491bb319d5ae59b505fa224b873ccf;hpb=dec5d55298280120ad561e2e1f123d57c2c4af1c diff --git a/src/execute.c b/src/execute.c index 06eb15215..1b37f2efe 100644 --- a/src/execute.c +++ b/src/execute.c @@ -783,7 +783,13 @@ int exec_spawn(ExecCommand *command, /* child */ - reset_all_signal_handlers(); + /* We reset exactly these signals, since they are the + * only ones we set to SIG_IGN in the main daemon. All + * others we leave untouched because we set them to + * SIG_DFL or a valid handler initially, both of which + * will be demoted to SIG_DFL. */ + default_signals(SIGNALS_CRASH_HANDLER, + SIGNALS_IGNORE, -1); if (sigemptyset(&ss) < 0 || sigprocmask(SIG_SETMASK, &ss, NULL) < 0) {