Handling and propagating signals
bah@longitude.com
bah at longitude.com
Thu Feb 1 18:17:12 GMT 2007
Two thoughts. First, what happens if you resend the signal to -$$ in the
signal handler? Ought this not propagate the signal to all processes in
your process group? Second thought, if that doesn't work for your target
platforms, why not use open "|-" and exec instead of system; that way you
will get the pid.
Ben
> Someone just reported what I'm inclined to treat as a bug in rsnapshot.
> Boiled down to a minimal example, it's this:
>
> perl -e '$SIG{TERM} = sub { exit() }; system("sleep 60")'
>
> Now send that process a SIGTERM. The perl process promptly exits. The
> command I ran using system(), however, does not. I want my signal
> handler to propagate the signal to children as well.
>
> Because the signal is received while perl is waiting for system() to
> return, I can't see any way in which I can possibly know the child's
> PID without having to grovel through the process table.
>
> --
> David Cantrell | Cake Smuggler Extraordinaire
>
> "The whole aim of practical politics is to keep the populace alarmed
> (and hence clamorous to be led to safety) by menacing it with an
> endless series of hobgoblins, all of them imaginary" -- H. L. Mencken
>
>
More information about the london.pm
mailing list