我为我的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')
)
但是脚本没有完全执行。我没有从中得到预期的结果。
问题可能是什么原因?如果有人能帮助我,我们会感激不尽。
答案 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相同的环境