I think the explanation moritz gives above is right. Should you need a workaround, you can probably send the entire process group a signal (other than KILL, obviously) after putting a handler in to ignore that signal in the parent.
Warning: drylabbed code ahead. Not tested, though I do have a little experience using signals in Perl.
my $pgrp_id=getpgrp(0) # gets the process group id of
# the current process
{ # scoping is important! Otherwise
# that signal will always be ignored
# by the parent, which is probably bad.
# I picked SIGINT, you might prefer something
# else.
local $SIG{'INT'}='IGNORE';
kill 2, -$pgrp_id; # - means it's a group id.
}
But, of course, this assumes you don't have other stuff running in the process group that you need to leave alive, besides the parent.
This does raise the question of why you need to kill it via a signal, of course.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|