如果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
答案 0 :(得分:0)
找到它 - 你必须添加
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/jenkins/jobs/Production/workspace/script
export PATH
在脚本开头设置环境......