class BitGirder::Io::ProcessCheck

Public Class Methods

for_pid( pid ) click to toggle source
# File lib/bitgirder/io.rb, line 1043
def self.for_pid( pid )
    
    ps_str = self.ps_str_for( pid )
    self.send( :new, pid, ps_str )
end
new( pid, ps_str ) click to toggle source
# File lib/bitgirder/io.rb, line 1021
def initialize( pid, ps_str )
    
    @pid, @ps_str = pid, ps_str
end
ps_str_for( pid ) click to toggle source
# File lib/bitgirder/io.rb, line 1031
def self.ps_str_for( pid )
    
    res = `ps -p #{pid} -w -o command= -o lstart=`.chomp
    res = nil if res.empty?

    unless $?.success? || ( ( ex = $?.exitstatus ) == 1 && res == nil )
        raise "Couldn't get ps info for #{pid} (ps exited #{ex}: #{res})"
    end

    res
end

Public Instance Methods

alive?() click to toggle source
# File lib/bitgirder/io.rb, line 1027
def alive?
    self.class.ps_str_for( @pid ) == @ps_str
end