神(ruby gem)でredisサーバーを監視しようとしています。/etc/redis/redis.conf の PID ファイル パスを (capistrano を使用して) アプリをデプロイするユーザーの rails app temp フォルダーに変更し、redis.god ファイルに「w.pid_file= .. ." これは、redis.conf ファイルで変更したものと同じ PID パスを指しています。そのため、redis.god ファイルは現時点では次のようになっています。
rails_env = ENV['RAILS_ENV'] || 'production'
raise "Please specify RAILS_ENV." unless rails_env
rails_root = ENV['RAILS_ROOT'] || File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
# Redis
%w{6379}.each do |port|
God.watch do |w|
w.dir = "#{rails_root}"
w.name = "redis"
w.interval = 30.seconds
w.start = "/etc/init.d/redis-server start /etc/redis/redis.conf"
w.stop = "/etc/init.d/redis-server stop"
w.restart = "/etc/init.d/redis-server restart"
w.start_grace = 10.seconds
w.restart_grace = 10.seconds
w.log = "#{rails_root}/log/redis.log"
w.pid_file = "/home/deployer/myapp/current/tmp/pids/redis-server.pid"
w.behavior(:clean_pid_file)
w.start_if do |start|
start.condition(:process_running) do |c|
c.interval = 5.seconds
c.running = false
end
end
end
end
私が抱えている問題は、神が redis を開始できることです。神ファイルのログを調べたところ、次のように書かれています。
Starting redis-server: touch: cannot touch `/var/run/redis/redis-server.pid': Permission denied
なぜまだ /var/run/redis/redis-server.pid を調べようとしているのですか? 許可が拒否されたため、redis.conf ファイルの PID パスを上に示した新しいパスに変更しましたが、依然として /var/run/redis/redis-server.pid を参照する必要があります。参考までに、これは PID パスを変更するというアイデアを得た場所です:既存のプロセスを監視するための神の構成ファイル?