신이있는 홍채 서버 (루비 보석)를 감시하려고합니다. /etc/redis/redis.conf의 PID 파일 경로를 내 응용 프로그램 (카피 스트라 노 사용)을 배포하는 사용자의 레일 앱 임시 폴더로 변경하고 redis.god 파일에서 "w.pid_file = .."줄을 추가했습니다. . "는 redis.conf 파일에서 변경된 경로와 동일한 PID 경로를 가리 킵니다. 그래서 redis.god 파일은 순간 다음과 같습니다 하나님이 redis 서버를 시작할 수 없습니다. 이 오류를 얻는 중 :`/var/run/redis/redis-server.pid ': 허가가 거부되었습니다.
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
그래서 제가하는 데 문제는 레디 스를 얻을 수 있습니다 신이 시작한다는 것입니다. 나는 신 파일에 대한 로그를 보면서 다음과 같은 말한다 :
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를 살펴보아야합니다. God configuration file to monitor existing processes?
참고로, 내가 할 수있는 아이디어를 가지고있는 곳은 PID 경로를 변경했습니다. sudo privilleges에 Redis를 설치하고 사용자 privilleges에서 실행하면 root에 속한 파일을 만질 수 없습니다. – DaveTsunami
@daveTsunami 그게 사실이라면 충분합니다. 나는 신이 sudo 권한으로 실행하고 PID 파일에 대한 권한을 거부하지 않을 것이라는 인상을 받았다. 내가 수정 한 방법은 w.start, w.stop 및 w.retart 행을 "usr/bin/redis-server /etc/redis/redis.conf"<-로 변경하여 시작하는 것입니다. redis.conf에서 pid 및 로그 파일을 쓰기 가능한 폴더로 설정했는지 확인하십시오. – user1370897