Somehow in my Development-Environment (Windows with Eclipse) webrick comes up with stale PID-Files.
I stop the Server, start it again and sometimes (not always) i get the message:
A server is already running.
This happend since i updated to rails-Version X.
But now i finally figured out (after googling and googling and finding nothing helpful) how to make it work again.
In application.rb before declaration of your own application insert:
require 'stale_pid_cleaner' StalePidCleaner.check
class StalePidCleaner def self.check fName = "./tmp/pids/server.pid" if(File.exists?(fName)) puts "found pidfile: " + fName.to_s pid = File.read(fName).to_i if(pid < 1) puts "invalid pid? " + pid.to_s else if(!alive?(pid)) puts "cleaning stale pidfile" File.delete(fName) end end end end private def self.alive?(pid) begin Process.kill(0, pid) true rescue Errno::ESRCH, TypeError # Process is dead false end end end
Hope it helps also someone else