![]() |
|
Just another Perl shrine | |
PerlMonks |
Perl's kill(): How to check if process group exists?by saintmike (Vicar) |
on Jul 31, 2011 at 19:29 UTC ( #917717=perlquestion: print w/replies, xml ) | Need Help?? |
saintmike has asked for the wisdom of the Perl Monks concerning the following question:
I want to send a signal to a process group, but up-front I'd like to know if it has a chance of succeeding.
Background: perl abstracts the system call killpg() and warps it into kill() with negative signal numbers. So, if you call kill(-15, $pid), perl translates it to killpg(15, $pid) on systems that support killpg(). Problem is that in order to run killpg(0, $pid), I'd have to call kill(-0, $pid) which is the same as kill(0, $pid) and won't trigger the special killpg(0, $pid) behavior. So, there's no way to check if a process is up but hasn't called POSIX::setsid() or POSIX::setpgid() yet, causing kill(15, $pid) to succeed but kill(-15, $pid) to fail. Any way around that? I could roll my own killpg() XS module, but I'd rather have it portable across Unix flavors and, ideally, use something that already comes with perl.
Back to
Seekers of Perl Wisdom
|
|