0
我想检查每个小时如果delayed_job正在运行。对于这个我使用的cron用cron重新启动delayed_job
29 * * * * /var/jenkins/jobs/Production/workspace/integration/check_runnig_jobs.sh
脚本如下。 当它自己执行时,它会启动delayed_job。但是从cron执行时无法启动,并发送邮件到/ var /邮件/ WWW的数据是:
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
你检查过[ '每当'](https://github.com/javan/whenever)宝石? – backpackerhh
Delayed_job实际上运行良好,但是我从cron开始有问题,并且正在寻找一种方法来首先解决此问题。 – thebravoman