Simple pidfile handling for daemon processes
# File lib/daemon_kit/pid_file.rb, line 50 def cleanup File.delete( @path ) rescue Errno::ENOENT end
# File lib/daemon_kit/pid_file.rb, line 43 def ensure_stopped! if self.running? puts "Process already running with id #{self.pid}" exit 1 end end
# File lib/daemon_kit/pid_file.rb, line 10 def exists? File.exists?( @path ) end
Return the pid contained in the pidfile, or nil
# File lib/daemon_kit/pid_file.rb, line 35 def pid return nil unless self.exists? File.open( @path ) { |f| return f.gets.to_i } end
Returns true if the process is running
# File lib/daemon_kit/pid_file.rb, line 15 def running? return false unless self.exists? # Check if process is in existence # The simplest way to do this is to send signal '0' # (which is a single system call) that doesn't actually # send a signal begin Process.kill(0, self.pid) return true rescue Errno::ESRCH return false rescue ::Exception # for example on EPERM (process exists but does not belong to us) return true #rescue Errno::EPERM # return false end end
Generated with the Darkfish Rdoc Generator 2.