Re: subprocesses lifecycle



On Aug 29, 12:53 pm, "Peter J. Holzer" <hjp-usen...@xxxxxx> wrote:
On 2008-08-29 12:19, C.DeRykus <c...@xxxxxxxxxxxxxxxxxxxxxxxx> wrote:

On Aug 28, 10:43 am, Hans Mulder <han...@xxxxxxxxx> wrote:
What you'd really want, is a way to tell C<open> that you don't want
C<close> to wait for this child. As far as I know, there is currently
no simple way to achieve that.

Wouldn't backgrounding the task
accomplish that:

open my $fd, "/some/task & |"
or die...

Man, that's ugly!
But yes, I think that should work (although I haven't actually tried
it).


I'm not sure why a lone "&" tips the ugly balance :)


However, child subprocesses would then need to be foregrounded with
SIGCONT if the parent wants to kill them before exiting.

No. SIGCONT doesn't "foreground" a process running in the background.
It continues a process which has been stopped. A running process can be
sent signals whether it is in the foreground or the background.


Yes, I mis-spoke but a SIGCONT actually is sent to the process
group when a backgrounded job is
moved to the foreground via "fg"
to enable a terminal read for example. At least that's I glean from
Stevens. Tricky stuff though...

I was also wrong about needing
to foreground the bg jobs so
they could be killed. They can
be killed easily if you know the
pid's. But, there doesn't appear an elegant way to pick them up
without some grubbing around.


--
Charles DeRykus

.



Relevant Pages

  • Re: subprocesses lifecycle
    ... accomplish that: ... No. SIGCONT doesn't "foreground" a process running in the background. ...
    (comp.lang.perl.misc)
  • Re: subprocesses lifecycle
    ... Because it invokes a shell ... is a more palatable solution. ... SIGCONT if the parent wants to kill them before exiting. ... sent signals whether it is in the foreground or the background. ...
    (comp.lang.perl.misc)
  • Re: Newbie question about csh
    ... Andrew wrote: ... would be possible to make that process running in foreground when I come ... if you really need a full-blown GUI type environment (like you have ...
    (comp.unix.shell)