私は初めてGod
です。Railsアプリケーションが実行されているプロセスGod
を監視するために使用しようとしています。unicorn
ここに私の神ファイルがあります:
rails_env = ENV["RAILS_ENV"]
APP_ROOT = '/home/deployer/deploy/myproject'
RAILS_ROOT = "#{APP_ROOT}/current"
God.watch do |w|
w.name = "myproject"
w.interval = 30.seconds
w.dir = RAILS_ROOT
w.start = "cd #{RAILS_ROOT} && bundle exec unicorn_rails -E #{rails_env} -c #{RAILS_ROOT}/config/unicorn.rb -D"
w.stop = "kill -s QUIT `cat #{RAILS_ROOT}/tmp/pids/unicorn.pid`"
w.restart = "kill -s USR2 `cat #{RAILS_ROOT}/tmp/pids/unicorn.pid`"
w.start_grace = 20.seconds
w.restart_grace = 20.seconds
w.pid_file = "#{RAILS_ROOT}/tmp/pids/unicorn.pid"
w.log = "#{RAILS_ROOT}/log/unicorn.god.log"
w.uid = 'deployer'
w.gid = 'staff'
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
w.restart_if do |restart|
restart.condition(:memory_usage) do |c|
c.above = 300.megabytes
c.times = [3, 5] # 3 out of 5 intervals
end
restart.condition(:cpu_usage) do |c|
c.above = 50.percent
c.times = 5
end
終了 終了
しかし、構成ファイルが有効かどうかをドライランでテストするとgod -c config/unicorn.god -D
、次のエラーが発生します。
$ god -c config/unicorn.god -D
I [2013-02-07 23:51:23] INFO: Loading config/unicorn.god
I [2013-02-07 23:51:23] INFO: Syslog enabled.
I [2013-02-07 23:51:23] INFO: Using pid file directory: /home/deployer/.god/pids
E [2013-02-07 23:51:23] ERROR: PID file directory '/home/deployer/deploy/myproject/current/tmp/pids' is not writable by deployer
E [2013-02-07 23:51:23] ERROR: Log directory '/home/deployer/deploy/myproject/current/log' is not writable by deployer
E [2013-02-07 23:51:23] ERROR: Task 'myproject' is not valid (see above)
しかし、実際には、 user を持つこれらの 2 つのディレクトリへのアクセス許可がありますdeployer
。
~/deploy/myproject/current$ ls -l
lrwxrwxrwx 1 deployer staff 42 Feb 7 23:24 log -> /home/deployer/deploy/myproject/shared/log
~/deploy/myproject/current/tmp$ ls -l
lrwxrwxrwx 1 deployer staff 43 Feb 7 23:24 pids -> /home/deployer/deploy/myproject/shared/pids
そして神のプロセスも以下で実行されていdeployer
ます:
$ ps -ef | grep god
deployer 381 1 5 00:20 pts/0 00:00:00 /usr/local/rvm/gems/ruby-1.9.3-p327-falcon@global/bin/god
何故ですか?