diff options
Diffstat (limited to 'src/progman.c')
-rw-r--r-- | src/progman.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/progman.c b/src/progman.c index b75a2db..a6dc418 100644 --- a/src/progman.c +++ b/src/progman.c @@ -821,7 +821,7 @@ prog_start_prologue (struct prog *prog) { size_t i; for (i = 0; sockenv_var[i]; i++) - environ_unset (prog->v.p.env, sockenv_var[i]); + environ_unset (prog->v.p.env, sockenv_var[i], NULL); } envop_exec (prog->v.p.comp->envop, prog->v.p.env); if (init_process) @@ -1978,10 +1978,12 @@ static void run_command (struct action *act, struct prog *prog, unsigned retcode, pid_t child_pid) { - pid_t pid; + pid_t pid, master_pid; char *argv[4]; char buf[INT_BUFSIZE_BOUND (uintmax_t)]; + master_pid = getpid (); + /* FIXME: optionally set output redirectors for this command? */ pid = fork (); @@ -1998,6 +2000,7 @@ run_command (struct action *act, struct prog *prog, unsigned retcode, setsid (); setenv ("PIES_VERSION", PACKAGE_VERSION, 1); setenv ("PIES_COMPONENT", prog_tag (prog), 1); + setenv ("PIES_MASTER_PID", umaxtostr (master_pid, buf), 1); setenv ("PIES_PID", umaxtostr (child_pid, buf), 1); if (retcode & STATUS_SIG_BIT) setenv ("PIES_SIGNAL", umaxtostr (STATUS_CODE (retcode), buf), 1); |