reap child processes when they die
This commit is contained in:
parent
af1ac846cc
commit
44358dfbaa
1 changed files with 12 additions and 0 deletions
|
@ -43,6 +43,10 @@ extern "C" {
|
||||||
# include <sys/select.h>
|
# include <sys/select.h>
|
||||||
#endif // HAVE_SYS_SELECT_H
|
#endif // HAVE_SYS_SELECT_H
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_WAIT_H
|
||||||
|
# include <sys/wait.h>
|
||||||
|
#endif // HAVE_SYS_WAIT_H
|
||||||
|
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
#define _(str) gettext(str)
|
#define _(str) gettext(str)
|
||||||
}
|
}
|
||||||
|
@ -62,6 +66,10 @@ void Openbox::signalHandler(int signal)
|
||||||
openbox->restart();
|
openbox->restart();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SIGCLD:
|
||||||
|
wait(NULL);
|
||||||
|
break;
|
||||||
|
|
||||||
case SIGHUP:
|
case SIGHUP:
|
||||||
case SIGINT:
|
case SIGINT:
|
||||||
case SIGTERM:
|
case SIGTERM:
|
||||||
|
@ -113,6 +121,10 @@ Openbox::Openbox(int argc, char **argv)
|
||||||
sigaction(SIGTERM, &action, (struct sigaction *) 0);
|
sigaction(SIGTERM, &action, (struct sigaction *) 0);
|
||||||
sigaction(SIGINT, &action, (struct sigaction *) 0);
|
sigaction(SIGINT, &action, (struct sigaction *) 0);
|
||||||
sigaction(SIGHUP, &action, (struct sigaction *) 0);
|
sigaction(SIGHUP, &action, (struct sigaction *) 0);
|
||||||
|
sigaction(SIGCLD, &action, (struct sigaction *) 0);
|
||||||
|
|
||||||
|
// anything that died while we were restarting won't give us a SIGCLD
|
||||||
|
while (waitpid(-1, NULL, WNOHANG) > 0);
|
||||||
|
|
||||||
otk::Timer::initialize();
|
otk::Timer::initialize();
|
||||||
otk::Property::initialize();
|
otk::Property::initialize();
|
||||||
|
|
Loading…
Reference in a new issue