用cron重启delayed_job

时间:2014-03-26 17:40:07

标签: ruby-on-rails cron delayed-job

如果delayed_job正在运行,我想检查每小时。为此我使用cron

29 * * * * /var/jenkins/jobs/Production/workspace/integration/check_runnig_jobs.sh

脚本如下。 当它自己执行时,它会启动delayed_job。但是当从cron执行时它无法启动并向/ var / mail / www-data发送邮件,这是:

19:19:01:开始检查...... 19:19:01:检查delayed_job - 19:19:01:没跑,重新开始...... 在任何来源中都找不到i18n-0.6.0 尝试运行bundle install。 + 19:19:01:delayed_job正在运行

在正在运行的进程中找不到delayed_job。

你能帮助我们吗?

脚本是

#!/bin/bash
# Check jobs that should be running on the production environment. This script might be    croned or run by jenkins,

check_process() {
  echo "$ts: checking $1"
  [ "$1" = "" ] && return 0
  [ `pgrep -fn $1` ] && return 1 || return 0
}

check_delayed_job() {
        RAILS_ENV=production
        export RAILS_ENV
        name="delayed_job"
        check_process $name
        [ $? -eq 0 ] && echo "- $ts: not running, restarting..." &&    /var/jenkins/jobs/Production/workspace/script/delayed_job start
        [ $? -eq 1 ] && echo "+ $ts: $name is RUNNING"

        return 0
}

# timestamp
ts=`date +%T`

echo "$ts: begin checking..."
check_delayed_job

exit 0

1 个答案:

答案 0 :(得分:0)

找到它 - 你必须添加

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/jenkins/jobs/Production/workspace/script
export PATH

在脚本开头设置环境......

相关问题