1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Merge pull request #2652 from sisnkemp/getpgid_to_kill

Process.kill to check for process is more portable.
This commit is contained in:
Mike Perham 2015-11-10 11:20:28 -08:00
commit 8cac86b47d

View file

@ -41,9 +41,13 @@ class Sidekiqctl
end
def fetch_process
Process.getpgid(pid)
Process.kill(0, pid)
rescue Errno::ESRCH
done "Process doesn't exist", :error
# We were not allowed to send a signal, but the process must have existed
# when Process.kill() was called.
rescue Errno::EPERM
return pid
end
def done(msg, error = nil)
@ -67,10 +71,12 @@ class Sidekiqctl
`kill -TERM #{pid}`
kill_timeout.times do
begin
Process.getpgid(pid)
Process.kill(0, pid)
rescue Errno::ESRCH
FileUtils.rm_f pidfile
done 'Sidekiq shut down gracefully.'
rescue Errno::EPERM
done 'Not permitted to shut down Sidekiq.'
end
sleep 1
end