Joe Van Dyk
3/30/2005 2:15:00 AM
On Tue, 29 Mar 2005 17:51:18 -0800, Joe Van Dyk <joevandyk@gmail.com> wrote:
> 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