#!/usr/bin/env ruby daemon_mode = !ARGV.empty? && ARGV[0] == "--daemon" script_dir = File.dirname(__FILE__) alaveteli_dir = File.expand_path(File.join(script_dir, "..")) Dir.chdir(alaveteli_dir) do require File.join(alaveteli_dir, 'config', 'boot') if daemon_mode # Run in daemon mode. # If the environment variable LOGFILE is present, # redirect STDERR and STDOUT to that file. if ENV.has_key? "LOGFILE" STDERR.reopen(STDOUT.reopen(ENV["LOGFILE"], "a")) STDOUT.sync=true puts "Daemon starting at #{Time.new}" end # Load the runner in a subprocess pid = fork do require 'commands/runner' exit 0 end # If the environment variable PIDFILE is present, # write the pid of the daemon process to that file. if ENV.has_key? "PIDFILE" File.open(ENV["PIDFILE"], 'w') do |fh| fh.puts pid end end Process.detach(pid) else # Not daemon mode require 'commands/runner' end end