我正在将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']