Crontab执行命令但ruby脚本未运行

时间:2011-08-08 06:10:56

标签: ruby ubuntu cron rvm crontab

我为我的ruby脚本设置了一个crontab。

crontab -l
12 10 * * * /bin/bash  -c 'cd /home/user/path/ && /home/user/.rvm/rubies/ruby-1.9.2-p136/bin/ruby  -rubygems script.rb'

命令/bin/bash -c 'cd /home/user/path/ && /home/user/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -rubygems script.rb'运行良好。

在cron中,cron正在执行命令(我检查了syslog:

sudo tail  /var/log/syslog
(user) CMD (/bin/bash  -c 'cd /home/user/path/ && /home/user/.rvm/rubies/ruby-1.9.2-p136/bin/ruby  -rubygems script.rb')

但是脚本没有完全执行。我没有从中得到预期的结果。

问题可能是什么原因?如果有人能帮助我,我们会感激不尽。

3 个答案:

答案 0 :(得分:6)

尝试:

12 10 * * * /bin/bash  -c 'source /home/user/.rvm/scripts/rvm && cd /home/user/path/ && /home/user/.rvm/bin/ruby-1.9.2-p136 -rubygems script.rb'

答案 1 :(得分:1)

如果您在项目中使用.rvmrc文件为您的项目设置ruby版本。然后你需要告诉rvm信任〜/ .rvmrc中的rvmrc文件

rvm_trust_rvmrcs_flag=1

这将禁用提示,您的cron将不会挂起。

答案 2 :(得分:1)

尝试在终端中运行env -i $ SHELL --norc,然后运行ruby脚本。终端将具有与cron相同的环境