我正在将whenever gem与rails 3一起使用。在生产服务器(ubuntu)上,runner任务无法运行。我尝试将:set job_template设置为获取-l -i,如this github ticket中所述。但是,这不能解决问题。

此特定生产ubuntu上的问题是echo $PATH中没有红宝石路径:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games


红宝石路径是/var/rails/myapp/shared/bundle/ruby/1.8/bin

因此,如果我手动编辑crontab文件并将PATH=/var/rails/myapp/shared/bundle/ruby/1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games添加到crontab文件中,则运行程序任务将正确执行。

但是,每次执行部署时,都需要手动编辑crontab文件以将PATH语句添加到该文件中。

有什么办法可以在crontab文件中添加此PATH行,以便在每次部署之后都不需要手动执行此操作吗?

谢谢

最佳答案

我没有使用RVM并将以下代码添加到文件config / schedule.rb(无论何时与gem相关的代码中您写的地方)都对我有用。

env :PATH, ENV['PATH']

10-05 20:31
查看更多