我正在尝试使用 Monit 来监控并在某些 Rails 应用程序崩溃时重新启动它们。这些应用程序使用 Sphinx。Monit 不接受通常在 shell 中工作的命令。
monitrc 配置如下所示:
...
check process app_name
with pidfile "/path/to/pidfile/searchd.production.pidfile"
start program = sudo su user_name -c "cd /home/app_name/current
&& RAILS_ENV=production rake ts:start"
stop program = sudo su user_name -c "cd /home/app_name/current
&& RAILS_ENV=production rake ts:stop"
...
访问 pidfile 的权限被拒绝,但如果我尝试:
with pidfile "sudo /path/to/pidfile/searchd.production.pidfile"
它不起作用。
同样,monit 不接受启动和停止程序 bash 命令。
我是否缺少明显的解决方法?顺便说一句,我是个菜鸟。
我还查看了http://capitate.rubyforge.org/recipes/sphinx-monit.html#sphinx:monit:start但并没有真正明白。