How to monitor delayed_job with monit

后端 未结 13 848
醉酒成梦
醉酒成梦 2020-12-02 04:11

Are there any examples on the web of how to monitor delayed_job with Monit?

Everything I can find uses God, but I refuse to use God since long running processes in

13条回答
  •  感动是毒
    2020-12-02 04:42

    I found it was easier to create an init script for delayed job. It is available here: http://gist.github.com/408929 or below:

    #! /bin/sh
    set_path="cd /home/rails/evatool_staging/current"
    
    case "$1" in
      start)
            echo -n "Starting delayed_job: "
                    su - rails -c "$set_path; RAILS_ENV=staging script/delayed_job start" >> /var/log/delayed_job.log 2>&1
            echo "done."
            ;;
      stop)
            echo -n "Stopping sphinx: "
                    su - rails -c "$set_path; RAILS_ENV=staging script/delayed_job stop" >> /var/log/delayed_job.log 2>&1
            echo "done."
            ;;
          *)
                N=/etc/init.d/delayed_job_staging
                echo "Usage: $N {start|stop}" >&2
                exit 1
                ;;
        esac
    
        exit 0
    

    Then make sure that monit is set to start / restart the app so in your monitrc file:

    check process delayed_job with pidfile "/path_to_my_rails_app/shared/pids/delayed_job.pid"
    start program = "/etc/init.d/delayed_job start"
    stop program = "/etc/init.d/delayed_job stop"

    and that works great!

提交回复
热议问题