summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/ecore/efl_exe.c13
-rw-r--r--src/lib/ecore/efl_exe.eo3
2 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/ecore/efl_exe.c b/src/lib/ecore/efl_exe.c
index 4580a41351..1cb0276205 100644
--- a/src/lib/ecore/efl_exe.c
+++ b/src/lib/ecore/efl_exe.c
@@ -552,7 +552,18 @@ _efl_exe_efl_task_run(Eo *obj, Efl_Exe_Data *pd)
552 int except[2] = { 0, -1 }; 552 int except[2] = { 0, -1 };
553 except[0] = pd->fd.exited_write; 553 except[0] = pd->fd.exited_write;
554 eina_file_close_from(3, except); 554 eina_file_close_from(3, except);
555 555#ifdef HAVE_PRCTL
556 if ((pd->flags & EFL_EXE_FLAGS_TERM_WITH_PARENT))
557 {
558 prctl(PR_SET_PDEATHSIG, SIGTERM);
559 }
560#elif defined(HAVE_PROCCTL)
561 if ((pd->flags & EFL_EXE_FLAGS_TERM_WITH_PARENT))
562 {
563 int sig = SIGTERM;
564 procctl(P_PID, 0, PROC_PDEATHSIG_CTL, &sig);
565 }
566#endif
556 // actually execute! 567 // actually execute!
557 _exec(cmd, pd->flags, td->flags); 568 _exec(cmd, pd->flags, td->flags);
558 // we couldn't exec... uh oh. HAAAAAAAALP! 569 // we couldn't exec... uh oh. HAAAAAAAALP!
diff --git a/src/lib/ecore/efl_exe.eo b/src/lib/ecore/efl_exe.eo
index 11f6519be3..c4cc2d7ebf 100644
--- a/src/lib/ecore/efl_exe.eo
+++ b/src/lib/ecore/efl_exe.eo
@@ -18,7 +18,8 @@ enum @beta Efl.Exe_Flags {
18 [[Flags to customize process behavior.]] 18 [[Flags to customize process behavior.]]
19 none = 0, [[No special flags.]] 19 none = 0, [[No special flags.]]
20 group_leader = 1, [[Process will be executed in its own session.]] 20 group_leader = 1, [[Process will be executed in its own session.]]
21 hide_io = 4 [[All console IO will be hidden.]] 21 hide_io = 4, [[All console IO will be hidden.]]
22 term_with_parent = 8, [[Makes child receive SIGTERM when parent dies.]]
22} 23}
23 24
24class @beta Efl.Exe extends Efl.Task implements Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Core.Command_Line 25class @beta Efl.Exe extends Efl.Task implements Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Core.Command_Line