before_fork do |_server, _worker|
# oldsig QUIT
if File.exists?(old_pid) && _server.pid != old_pid
begin
Process.kill("QUIT", File.read(old_pid).to_i)
rescue Errno::ENOENT, Errno::ESRCH
end
end
# watch restart.txt
if _worker.nr == 0 && Rails.env.development?
listener = Listen.to(Rails.root.join('tmp').to_s, only: /\Arestart.txt\z/) do |modified, added, removed|
pid = _server.config[:pid]
if pid == _server.pid
begin
Process.kill("USR2", File.read(pid).to_i)
rescue Errno::ENOENT, Errno::ESRCH
end
end
end
listener.start
end