Getting process status

J

Joe Van Dyk

If I have the id of a process, how can I get a Process::Status object for it?

Thanks,
Joe
 
J

Joe Van Dyk

If I have the id of a process, how can I get a Process::Status object for it?

Thanks,
Joe

Actually, what I'm trying to do is create an application that will be
able to start, kill, and monitor programs on a bunch of linux
machines.

My initial attempt is using DRb.

I have a Node class that will run on each "node". The Node class will
have methods for starting, killing, and monitoring processes. I have
a NodeProcess object that enscapulates starting, killing, and
returning the status of a process.

I also have a NodeMonitor class that will connect to all the different
Node classes and let the user start/kill different processes on the
Node.

Does my design look ok? I'm having some difficulties correctly
starting a process and getting the status of a currently running or
killed process.

To start a process, I have something like
def start_process
@process_id = fork do
$logger.info "Executing '#{@command} #{@arguments}'"
Kernel.exec "#{@command} #{@arguments}"
end
$logger.info "New process id: #{@process_id}"
end
end
where @command and @arguments are just strings that have been set
already. But I'm getting the process id back of the "sh -c
some_command args" process, not the real process.

And I'm still struggling on how to get the status of my process.

Thanks for your input!

Joe
 
J

Joe Van Dyk

Calling Process#wait should set $? which is the Status object
for the given pid.

That's not quite what I asked for. I have the pid of a specific
process and I need to find out its status (whether or not it's running
or not).
 
L

leon breedt

That's not quite what I asked for. I have the pid of a specific
process and I need to find out its status (whether or not it's running
or not).
On Linux at least, you can send signal 0 to determine whether a
process is running or not.

Process#kill(0, 2323)

Over here, I get an Errno::ESRCH exception raised if the process is not running.

Leon
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,169
Messages
2,570,920
Members
47,463
Latest member
FinleyMoye

Latest Threads

Top