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