class Daemons::Pid
def self.dir(dir_mode, dir, script)
If no valid directory is found, returns nil.
the directory automatically.
Some modes may require an additionaly hint, others may determine
depending on the given mode.
Returns the directory that should be used to write the pid file to
def self.dir(dir_mode, dir, script) # nil script parameter is allowed as long as dir_mode is not :script return nil if dir_mode == :script && script.nil? case dir_mode when :normal return File.expand_path(dir) when :script return File.expand_path(File.join(File.dirname(script), dir)) when :system return '/var/run' else fail Error.new("pid file mode '#{dir_mode}' not implemented") end end
def self.running?(pid)
def self.running?(pid) return false unless pid # 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, pid) return true rescue TimeoutError raise rescue Errno::ESRCH return false rescue ::Exception # for example on EPERM (process exists but does not belong to us) return true end end
def cleanup
def cleanup end
def exist?
def exist? true end
def initialize
def initialize end
def pid
def pid end
def pid=(p)
def pid=(p) end
def running?
def running? Pid.running?(pid) end
def zap
def zap end