Skip to content

Instantly share code, notes, and snippets.

@zliang-min
Created December 10, 2010 07:16
Show Gist options
  • Save zliang-min/735899 to your computer and use it in GitHub Desktop.
Save zliang-min/735899 to your computer and use it in GitHub Desktop.
stop daemons
pid_file = "someapp.pid"
pid = File.read pid_file
begin
Process.kill 'TERM', pid
rescue Errno::ESRCH
puts $!
end
require 'timeout'
$stdout.print 'Wating the process being killed.'
$stdout.refresh
begin
Timeout.timeout(60) {
loop do
begin
$stdout.print '.'
$stdout.refresh
Process.kill 0, pid
rescue Errno::ESRCH
break
end
end
}
rescue Timeout::Error
puts "\nKill it!"
Process.kill 'KILL', pid rescue nil
end
rm pid_file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment