# File lib/thin/daemonizing.rb, line 117 def send_signal(signal, pid_file, timeout=60) if pid = read_pid_file(pid_file) Logging.log "Sending #{signal} signal to process #{pid} ... " Process.kill(signal, pid) Timeout.timeout(timeout) do sleep 0.1 while Process.running?(pid) end else Logging.log "Can't stop process, no PID found in #{pid_file}" end rescue Timeout::Error Logging.log "Timeout!" force_kill pid_file rescue Interrupt force_kill pid_file rescue Errno::ESRCH # No such process Logging.log "process not found!" force_kill pid_file end