I need to check if a process is running

Hi,

I need to check if a process is running.
I have this code for this:

···

pid="2212"
cmd=“ps -f p “+pid
out=#{cmd}
lines=out.split(/\n/)
if (lines.length==1) then
print “Process with PID=”+pid+” doesn’t running.\n"
end
if (lines.length==2) then
print “Process with PID=”+pid+” is running.\n"
end

Is there any other method for this?
Is there any possibility to check this directly with ruby?

Thanks,
Gian Paolo

gp wrote:

Hi,

I need to check if a process is running.
I have this code for this:


pid=“2212”
cmd=“ps -f p “+pid
out=#{cmd}
lines=out.split(/\n/)
if (lines.length==1) then
print “Process with PID=”+pid+” doesn’t running.\n”
end
if (lines.length==2) then
print “Process with PID=”+pid+" is running.\n"
end

Is there any other method for this?
Is there any possibility to check this directly with ruby?

Thanks,
Gian Paolo

require “sys/proctable”
include Sys

ProcTable.ps{ |p|
if p.pid == 2212
puts “Process [” + p.pid.to_s + “] is running”
end
}

or

if ProcTable.ps(2212).empty?
puts “Process not running”
end

sys-proctable is available on the RAA. It currently supports Linux,
Solaris and FreeBSD. Windows support on the way.

Regards,

Dan

···


a = [74, 117, 115, 116, 32, 65, 110, 111, 116, 104, 101, 114, 32, 82]
a.push(117,98, 121, 32, 72, 97, 99, 107, 101, 114)
puts a.pack(“C*”)

Is there any other method for this?
Is there any possibility to check this directly with ruby?

Well, you can try to send the signal 0, ruby will raise the errors
Errno::ESRCH (process don't exist), Errno::EPERM (you don't have
permission) otherwise the process is present

Guy Decoux

Hi,

I need to check if a process is running.

If that process is a child,

unless Process.waitpid(pid, Process::WNOHANG)
puts “#{pid} is running”
end

or,

begin
Process.kill(0, pid)
puts “#{pid} is running”
rescue Errno::ESRCH
puts “#{pid} is dead”
end

···

At Wed, 19 Feb 2003 00:48:29 +0900, gp wrote:


Nobu Nakada

gp gp@NOSPAM.le.isac.cnr.it wrote in message news:b2tjdr$i19$1@newsfeed.cineca.it

I need to check if a process is running.

On Linux:

pid = 2212
if FileTest.exist?(“/proc/#{pid}”)
puts “process #{pid} is running”
end

Dan’s sys-proctable is a more portable version.

Regards,

Tom

Hi,

I need to check if a process is running.
I have this code for this:


pid=“2212”
cmd=“ps -f p “+pid
out=#{cmd}
lines=out.split(/\n/)
if (lines.length==1) then
print “Process with PID=”+pid+” doesn’t running.\n”
end
if (lines.length==2) then
print “Process with PID=”+pid+" is running.\n"
end

Is there any other method for this?
Is there any possibility to check this directly with ruby?

Process.kill(0, pid):

(kill with a signal of 0 sees if the process is still alive)

irb(main):001:0> Process.kill(0,$$)
1
irb(main):002:0> Process.kill(0,$$+1)
Errno::ESRCH: No such process
from (irb):2:in `kill’
from (irb):2
irb(main):003:0> exit

Thanks,
Gian Paolo

    Hugh
···

On Wed, 19 Feb 2003, gp wrote: