forked from enlightenment/efl
Ecore Exe: add flag to send SIGTERM when parent die
Add a new ecore exe flag, ECORE_EXE_TERM_WITH_PARENT, that will operate on child process, sending a SIGTERM when parent process dies. SVN revision: 63915
This commit is contained in:
parent
4364c5720c
commit
8bc303995a
|
@ -654,7 +654,8 @@ extern "C" {
|
||||||
ECORE_EXE_PIPE_AUTO = 32, /**< stdout and stderr are buffered automatically */
|
ECORE_EXE_PIPE_AUTO = 32, /**< stdout and stderr are buffered automatically */
|
||||||
ECORE_EXE_RESPAWN = 64, /**< FIXME: Exe is restarted if it dies */
|
ECORE_EXE_RESPAWN = 64, /**< FIXME: Exe is restarted if it dies */
|
||||||
ECORE_EXE_USE_SH = 128, /**< Use /bin/sh to run the command. */
|
ECORE_EXE_USE_SH = 128, /**< Use /bin/sh to run the command. */
|
||||||
ECORE_EXE_NOT_LEADER = 256 /**< Do not use setsid() to have the executed process be its own session leader */
|
ECORE_EXE_NOT_LEADER = 256, /**< Do not use setsid() to have the executed process be its own session leader */
|
||||||
|
ECORE_EXE_TERM_WITH_PARENT = 512 /**< Makes child receive SIGTERM when parent dies. */
|
||||||
};
|
};
|
||||||
typedef enum _Ecore_Exe_Flags Ecore_Exe_Flags;
|
typedef enum _Ecore_Exe_Flags Ecore_Exe_Flags;
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <sys/prctl.h>
|
||||||
|
|
||||||
#ifdef HAVE_SYS_WAIT_H
|
#ifdef HAVE_SYS_WAIT_H
|
||||||
# include <sys/wait.h>
|
# include <sys/wait.h>
|
||||||
|
@ -1509,6 +1510,11 @@ _ecore_exe_exec_it(const char *exe_cmd, Ecore_Exe_Flags flags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((flags & ECORE_EXE_TERM_WITH_PARENT))
|
||||||
|
{
|
||||||
|
prctl(PR_SET_PDEATHSIG, SIGTERM);
|
||||||
|
}
|
||||||
|
|
||||||
if (!(flags & ECORE_EXE_NOT_LEADER)) setsid();
|
if (!(flags & ECORE_EXE_NOT_LEADER)) setsid();
|
||||||
if ((flags & ECORE_EXE_USE_SH))
|
if ((flags & ECORE_EXE_USE_SH))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue