How can I check from Ruby whether a process with a certain pid is running?
The difference between the Process.getpgid
and Process::kill
approaches seems to be what happens when the pid exists but is owned by another user. Process.getpgid
will return an answer, Process::kill
will throw an exception (Errno::EPERM)
.
Based on that, I recommend Process.getpgid
, if just for the reason that it saves you from having to catch two different exceptions.
Here's the code I use:
begin Process.getpgid( pid ) truerescue Errno::ESRCH falseend