Monit未能启动流程

fet*_*imo 5 unix debian monit rvm

我有一个简单的脚本,我试图让Monit监控.经过一番挖掘后,我发现了这个小金块:start program = "su - myuser -c '/home/user/myscript.rb start' "我认为应该可以工作,但是查看它所说的日志文件:

[PDT Oct 30 02:47:17] info     : 'simple_script' start: su
[PDT Oct 30 02:47:17] error    : Error: Could not execute su
Run Code Online (Sandbox Code Playgroud)

同样,早期的尝试似乎只是读取空格前面的部分,所以:

start program = "/home/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /home/user/simple_script_daemon.rb stop"
Run Code Online (Sandbox Code Playgroud)

结果是…

[PDT Oct 30 03:09:49] info     : 'simple_script' start: /home/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
Run Code Online (Sandbox Code Playgroud)

这不像第一个例子那样失败,但似乎仍然只执行空格之前的部分.

这是我的完整声明:

check process simple_script
    with pidfile /home/user/simple_script.rb.pid
    start program = "su - user -c '/home/user/simple_script_daemon.rb start' "
    stop program = "su - user -c '/home/user/simple_script_daemon.rb stop' "
    group simple_script
Run Code Online (Sandbox Code Playgroud)

如果你已经知道可能会发生什么,我很乐意听到你的消息!

bri*_*sou 7

我想你可以尝试类似的东西:

check process simple_script
    with pidfile /home/user/simple_script.rb.pid
    start program = "/home/user/simple_script_daemon.rb start" as uid user and gid user
    stop program = "/home/user/simple_script_daemon.rb stop" as uid user and gid user
    group simple_script
Run Code Online (Sandbox Code Playgroud)

正如monit doc所述.

  • 嗨Brice,经过一段时间的摆弄我发现以下内容:start program ="/ bin/bash -c'export rvm_path =/home/user/.rvm;.$ rvm_path/scripts/rvm; cd /home/user/crittr.me; $ rvm_path/bin/rvm rvmrc load; ./simple_script_daemon.rb start'"感谢您的帮助! (6认同)