You may want to take a look at Watchdog::Process. I've never used it before, but 'watchdog' is normally what you call a process that monitors another one, and a quick search turned that up.
Update: Well, if that one's out, I can offer the following logic, that I wrote ~5 years ago to sense if the process I was called was already running. it was written for Solaris, but you can change the arguments to ps to fit for BSD.]
sub check_running {
my $return = `ps -ef | grep process_incoming | grep -v grep | wc -
+l | tr -d '[:space:]'`;
# blah...running from cron, there's two processes -- sh, and perl:
if ( $return != 2 and $return != 1 ) {
# wrap this in an eval to keep it quiet
# (or the 'die' will generate output)
eval {
&log_error("Aborting -- 'process_incoming' showing in ps
+[$return]");
};
exit;
}
return;
}
Okay, I admit...it was from a shell script originally, and I just recycled the same command, rather than spending the time to figure out how to track processes from within Perl.
-
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.
|