上帝配置文件来监控现有流程?

我使用God(Ruby gem)监视我的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 

要回答这个问题:

我在我的God文件中放了一个w.pid_file =“SOMETHING”,并确保在Redis的配置文件中也设置了这个PID文件。

你还应该添加:

 w.pid_file = "Your_pid_file_name" 

然后用。清理pid文件

 w.behaviour(:clean_pid_file)