lib/dante/runner.rb in dante-0.0.2 vs lib/dante/runner.rb in dante-0.0.3

- old
+ new

@@ -44,21 +44,18 @@ # Executes the runner based on options # @runner.execute # @runner.execute { ... } def execute(&block) parse_options - kill_pid(options[:kill] || '*') if options.include?(:kill) - Process.euid = options[:user] if options[:user] - Process.egid = options[:group] if options[:group] - - @startup_command = block if block_given? - - if !options[:daemonize] - start - else - daemonize + if options.include?(:kill) + kill_pid(options[:kill] || '*') + else # create process + Process.euid = options[:user] if options[:user] + Process.egid = options[:group] if options[:group] + @startup_command = block if block_given? + options[:daemonize] ? daemonize : start end end def start puts "Starting #{@name} service..." @@ -132,19 +129,17 @@ end def kill_pid(k) Dir[options[:pid_path]].each do |f| begin - puts f - pid = IO.read(f).chomp.to_i - FileUtils.rm f - Process.kill(9, pid) - puts "killed PID: #{pid}" + pid = IO.read(f).chomp.to_i + FileUtils.rm f + Process.kill(9, pid) + puts "killed PID: #{pid} at #{f}" rescue => e puts "Failed to kill! #{k}: #{e}" end end - exit end def daemonize pid = fork do exit if fork \ No newline at end of file