Method: Daemon::Controller.start

Defined in:
lib/chocolate_rain/daemon.rb

.start(daemon) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/chocolate_rain/daemon.rb', line 42

def self.start(daemon)
  fork do
    Process.setsid
    exit if fork
    PidFile.store(daemon, Process.pid)
    Dir.chdir WorkingDirectory
    File.umask 0000
    STDIN.reopen "/dev/null"
    STDOUT.reopen "/dev/null", "a"
    STDERR.reopen STDOUT
    trap("TERM") {daemon.stop; exit}
    daemon.start
  end
end