class Procs::ProcessInfo

Attributes

cmd[R]
pid[R]
ppid[R]

Public Class Methods

info(pid) click to toggle source
# File lib/procs.rb, line 27
def ProcessInfo::info(pid)
        p,pp,c=`ps p #{pid} -o pid,ppid,cmd`.scan(/(\d+)\s+(\d+)\s+(.*)$/)[0]
        ProcessInfo.new p.to_i, pp.to_i, c
end
new(pid, ppid, cmd) click to toggle source
# File lib/procs.rb, line 8
def initialize(pid, ppid, cmd)
        @pid  = pid.to_i
        @ppid = ppid.to_i
        @cmd  = cmd.strip
end

Public Instance Methods

childs() click to toggle source
# File lib/procs.rb, line 32
def childs
        Procs::childs(self.pid)
end
inspect() click to toggle source
# File lib/procs.rb, line 43
def inspect
        '<Process: pid=%s, ppid=%s, cmd=%s>'%[self.pid, self.ppid, self.cmd]
end
kill() click to toggle source
# File lib/procs.rb, line 14
def kill
        Process::kill('KILL', self.pid)
        begin
                Process::wait(self.pid)
        rescue Errno::ECHILD => err
        end
end
killtree() click to toggle source
# File lib/procs.rb, line 22
def killtree
        self.childs.each{|c| c.killtree}
        self.kill
end
to_i() click to toggle source
# File lib/procs.rb, line 36
def to_i
        self.pid
end
to_s() click to toggle source
# File lib/procs.rb, line 40
def to_s
        '<Process: pid=%s, ppid=%s, cmd=%s>'%[self.pid, self.ppid, self.cmd]
end