【问题标题】:Monit failing to start process监控无法启动进程
【发布时间】:2011-10-30 10:17:31
【问题描述】:

我有一个简单的脚本,试图让 Monit 进行监控。在some digging around 之后,我发现了这个小金块: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

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

start program = "/home/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /home/user/simple_script_daemon.rb stop"

结果……

[PDT Oct 30 03:09:49] info     : 'simple_script' start: /home/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

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

这是我的完整声明:

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

如果您对可能发生的事情有所了解,我很乐意听取您的意见!

【问题讨论】:

    标签: unix debian rvm monit


    【解决方案1】:

    我想你可以试试这样的:

    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
    

    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'" 感谢您的帮助!
    【解决方案2】:

    您可能需要提供su 的完整路径,即/bin/su

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多