使用crontab时,为什么不能运行启动延迟作业命令

时间:2017-09-17 05:45:51

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

#!/bin/bash
#!/usr/bin/env ruby

cd /var/www/project
if [ ! -f tmp/pids/delayed_job.pid ]; then
  echo "File not found!"
  pwd
  ./bin/delayed_job start

  echo "Run script successful!"
fi

在我的代码中,启动通常是工作,但使用crontab运行不起作用。

任何想法请。

1 个答案:

答案 0 :(得分:0)

它解决了。

我使用rbenv进行ruby安装并将其设置为.bash_profile。是环境工作,但我在crontab中运行ruby不起作用。

解决方案:我将.bash_profile中的一些配置复制到我的脚本中,见下文

#!/bin/sh

#below script from .bash_profile

PATH=$PATH:$HOME/bin export PATH export PATH=$HOME/.rbenv/bin:$PATH eval "$(rbenv init -)" export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
#end script from .bash_profile

RAILS_HOME="/var/www/{project}" if [ ! -f $RAILS_HOME/tmp/pids/delayed_job.pid ]; then echo "Starting Delayed job" $RAILS_HOME/bin/delayed_job start fi