Method: Qs::Process#run

Defined in:
lib/qs/process.rb

#runObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/qs/process.rb', line 31

def run
  ::Process.daemon(true) if self.daemonize?
  log "Starting Qs daemon for #{@daemon.name}"

  $0 = @name
  @pid_file.write
  log "PID: #{@pid_file.pid}"

  @signal_io.setup
  trap_signals(@signal_io)

  start_daemon(@daemon)

  signal = catch(:signal) do
    wait_for_signals(@signal_io, @daemon)
  end
  @signal_io.teardown

  run_restart_cmd(@daemon, @restart_cmd) if signal == RESTART
ensure
  @pid_file.remove
end