![monit 无法运行启动 goliath 服务器的命令](https://linux22.com/image/617998/monit%20%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C%E5%90%AF%E5%8A%A8%20goliath%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%91%BD%E4%BB%A4.png)
有人可以提供一些线索来解释为什么当我在终端上手动运行此命令时:
/bin/bash -c'cd /home/david/live && bundle exec ruby /home/david/live/api/goliath.rb -sv -e prod'
它会很好地启动我的服务器-但是当它在 monitrc 上时像这样:
启动程序 = “/bin/bash -c'cd /home/david/live && bundle exec ruby /home/david/live/api/goliath.rb -sv -e prod'”
它只是会反复无法启动/执行该命令行
[UTC 9 月 17 日 01:00:25] 错误:'goliath' 进程未运行 [UTC 9 月 17 日 01:00:25] 信息:'goliath' 正在尝试重新启动 [UTC 9 月 17 日 01:00:25] 信息:'goliath' 启动:/bin/bash
答案1
您可能需要指定 UID 和 GID,因为 monit 以 root 身份运行。
check process myserver
with pidfile "/home/path/to/myserver.pid"
start program = "/bin/bash -c 'cd /home/david/live && bundle exec ruby /home/david/live/api/goliath.rb -sv -e prod'"
as uid myserver_uid and gid myserver_gid
为了调试,您可以尝试输出到文件并检查该文件以获取更多详细信息。
check process myserver
with pidfile "/home/path/to/myserver.pid"
start program = "/bin/bash -c 'cd /home/david/live && bundle exec ruby /home/david/live/api/goliath.rb -sv -e prod' >> /tmp/myserver.log 2>&1"
as uid myserver_uid and gid myserver_gid