in reply to Unix process number on a mac...

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.

Replies are listed 'Best First'.
Re^2: Unix process number on a mac...
by EvilSuggestions (Acolyte) on Mar 15, 2005 at 20:53 UTC

    Looks like Watchdog::Process uses Proc::ProcessTable, so if the latter doesn't work on a Mac, I wouldn't guess that the former would either.

    Also the pod for W::P states "This class has only been successfully tested on Solaris 2.6.", so I wouldn't hold out much hope.

    "There is a thin line between ignorance and arrogance, and only I have managed to erase that line." - Dr. Science