lib/good_job/daemon.rb in good_job-1.9.3 vs lib/good_job/daemon.rb in good_job-1.9.4

- old
+ new

@@ -11,38 +11,44 @@ def initialize(pidfile:) @pidfile = pidfile end # Daemonizes the current process and writes out a pidfile. + # @return [void] def daemonize check_pid Process.daemon write_pid end private + # @return [void] def write_pid File.open(pidfile, ::File::CREAT | ::File::EXCL | ::File::WRONLY) { |f| f.write(Process.pid.to_s) } at_exit { File.delete(pidfile) if File.exist?(pidfile) } rescue Errno::EEXIST check_pid retry end + # @return [void] def delete_pid File.delete(pidfile) if File.exist?(pidfile) end + # @return [void] def check_pid case pid_status(pidfile) when :running, :not_owned abort "A server is already running. Check #{pidfile}" when :dead File.delete(pidfile) end end + # @param pidfile [Pathname, String] + # @return [Symbol] def pid_status(pidfile) return :exited unless File.exist?(pidfile) pid = ::File.read(pidfile).to_i return :dead if pid.zero?