diff --git a/vendor/plugins/delayed_job/lib/delayed/pool.rb b/vendor/plugins/delayed_job/lib/delayed/pool.rb index 52de9c6c830..2574f5d9dfa 100644 --- a/vendor/plugins/delayed_job/lib/delayed/pool.rb +++ b/vendor/plugins/delayed_job/lib/delayed/pool.rb @@ -219,7 +219,11 @@ class Pool pid = File.read(pid_file) if File.file?(pid_file) if pid.to_i > 0 puts "Stopping pool #{pid}..." - Process.kill('INT', pid.to_i) + begin + Process.kill('INT', pid.to_i) + rescue Errno::ESRCH + # ignore if the pid no longer exists + end else status end @@ -227,12 +231,13 @@ class Pool def status(print = true) pid = File.read(pid_file) if File.file?(pid_file) - if pid + alive = pid && pid.to_i > 0 && Process.kill(0, pid.to_i) rescue false + if alive puts "Delayed jobs running, pool PID: #{pid}" if print else puts "No delayed jobs pool running" if print end - pid.to_i > 0 ? pid.to_i : nil + alive end def read_config(config_filename)