# File src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb, line 187
  def initialize(options)
    [:identifier, :start_command, :ping_command, :pid_file, :log_file].each do |option|
      if !options.has_key?(option)
        raise ArgumentError, "The ':#{option}' option is mandatory."
      end
    end
    @identifier = options[:identifier]
    @start_command = options[:start_command]
    @stop_command = options[:stop_command]
    @ping_command = options[:ping_command]
    @restart_command = options[:restart_command]
    @ping_interval = options[:ping_interval] || 0.1
    @pid_file = options[:pid_file]
    @log_file = options[:log_file]
    @before_start = options[:before_start]
    @start_timeout = options[:start_timeout] || 15
    @stop_timeout = options[:stop_timeout] || 15
    @log_file_activity_timeout = options[:log_file_activity_timeout] || 7
    @daemonize_for_me = options[:daemonize_for_me]
    @keep_ios = options[:keep_ios] || []
    @lock_file = determine_lock_file(options, @identifier, @pid_file)
    @env = options[:env] || {}
  end