solisoft (owner)

Revisions

gist: 86819 Download_button fork
public
Public Clone URL: git://gist.github.com/86819.git
checkRailsApp.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
environment = "www"
mongrel_rails = "/usr/local/bin/mongrel_rails"
 
result = `cd #{environment}/current && #{mongrel_rails} cluster::status`.split("\n")
result = result.map{|r| r unless r == ""}.compact
check = result.map{|r| r =~ /^found/}.compact
pids = []
ports= []
result.each do |r|
  pid = r.scan /pid (\d+)$/
  pids << pid.to_s.to_i if pid.size > 0
  port= r.scan /port (\d+)/
  ports << port.to_s.to_i if port.size > 0
end
if check.size == result.size
  puts "Server OK"
else
  puts "Restarting mongrel Server"
  `kill -9 #{pids.join(" ")}` if pids.size > 0
  ports.each do |port|
    pid = `pgrep -f #{port}`
    `kill -9 #{pid}` if pid != ""
  end
  `rm #{environment}/current/tmp/pids/*`
  `cd #{environment}/current && #{mongrel_rails} cluster::restart`
  file = File.new("checkapp.log", "a")
  file.write("Restarting mongrel serveur\n")
  file.write("==========================\n")
  file.write("#{Time.now}\n")
  file.write("#{result.inspect}\n")
  file.write("#{ports.inspect}\n")
  file.write("#{pids.inspect}\n\n")
  file.close
end