我有一个root用户cron设置每隔一小时运行一次。我手动运行rake任务,并以root用户身份成功运行。但是当我将这个rake任务添加为cron时,它不起作用,我检查了/ var / log / syslog,它似乎运行了cron,我还重定向了stdout和stderr并检查了文件,但是文件似乎是空的。我的猜测是以root用户身份运行cron存在问题。以前有没有人遇到这个问题。?
快速更新
在stdout / stderr日志中我得到了一个缺失的宝石,我正在使用RVM,我已经全局安装了我的宝石和我正在使用的gemset。
答案 0 :(得分:0)
听起来可能在默认的cron环境中找不到rake。首先尝试更改到相应的目录,然后在下面,这将尝试找到rake然后运行它:
0 */1 * * * cd /app/directory; /usr/bin/env rake <task>
还尝试添加设置PATH
,其中包含rvm二进制文件的路径:
PATH=/usr/local/rvm/bin;/usr/local/bin:/usr/bin:/bin
(用您系统上的rvm路径替换/usr/local/rvm/bin
)