monit 无法运行启动 goliath 服务器的命令

monit 无法运行启动 goliath 服务器的命令

有人可以提供一些线索来解释为什么当我在终端上手动运行此命令时:

/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

相关内容