2013-05-07 42 views
1

我正在使用God(Ruby寶石)監視我的Redis服務器。但是,我現有的服務器可能已經有一個redis實例。我怎樣才能確保它監視已經啓動的現有Redis服務器進程的上帝配置文件來監視現有的進程?

這是Redis的,我的上帝文件:

rails_root = ENV['RAILS_ROOT'] 
redis_root = "/usr/local/bin" 

# Redis 
%w{6379}.each do |port| 
    God.watch do |w| 
    w.name   = "redis" 
    w.interval  = 30.seconds 
    w.start   = "#{redis_root}/redis-server /etc/redis/redis.conf" 
    w.stop   = "#{redis_root}/redis-cli shutdown" 
    w.restart  = "#{w.stop} && #{w.start}" 
    w.start_grace = 10.seconds 
    w.restart_grace = 10.seconds 
    w.log   = File.join(rails_root, 'log', 'redis.log') 
    w.keepalive(:memory_max => 5000.megabytes) 
    w.start_if do |start| 
     start.condition(:process_running) do |c| 
      c.interval = 5.seconds 
      c.running = false 
     end 
    end 
    end 
end 

回答

1

要回答這個問題:

我把 w.pid_file =「東西」在我的上帝文件,並確保該PID文件也在Redis的配置文件中設置。

0

你也應該加上:

w.pid_file = "Your_pid_file_name" 

,然後用乾淨

w.behaviour(:clean_pid_file) 
pid文件