Parent

Daemons::Pid

Public Class Methods

dir(dir_mode, dir, script) click to toggle source

Returns the directory that should be used to write the pid file to depending on the given mode.

Some modes may require an additionaly hint, others may determine the directory automatically.

If no valid directory is found, returns nil.

# File lib/daemons/pid.rb, line 62
def Pid.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
      raise Error.new("pid file mode '#{dir_mode}' not implemented")
  end
end
new() click to toggle source

Initialization method

# File lib/daemons/pid.rb, line 79
def initialize
end
running?(pid) click to toggle source
# File lib/daemons/pid.rb, line 7
def Pid.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 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

Public Instance Methods

cleanup() click to toggle source

Cleanup method

# File lib/daemons/pid.rb, line 97
def cleanup
end
exist?() click to toggle source

Exist? method

# File lib/daemons/pid.rb, line 101
def exist?
  true
end
pid() click to toggle source

Get method

# File lib/daemons/pid.rb, line 84
def pid
end
pid=(p) click to toggle source

Set method

# File lib/daemons/pid.rb, line 88
def pid=(p)
end
running?() click to toggle source

Check whether the process is running

# File lib/daemons/pid.rb, line 92
def running?
  return Pid.running?(pid())
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.