我有这个cronfile:
# Begin Whenever generated tasks for: mtaville_staging
* * * * * cd /home/mtaville/mtaville_staging/releases/20141202140931 && RAILS_ENV=staging bundle exec rake cinemas:import --silent
# End Whenever generated tasks for: mtaville_staging
但它没有执行任务。
当我有这个时:
* * * * * cd /home/mtaville/ && touch "echo.txt"
文件" echot.txt"创造了...但不是我的任务!
修改的
nohup: les entrées sont ignorées
nohup: impossible d'exécuter la commande «cinemas:import»: Aucun fichier ou dossier de ce type
编辑最终
这是我的crontask:
* * * * * /bin/bash -c 'export PATH="$HOME/.rbenv/bin:$PATH" ; eval "$(rbenv init -)"; cd /home/mtaville/mtaville_staging/current ; RAILS_ENV=staging bundle exec rake cinemas:import > /tmp/log.txt 2>&1'
答案 0 :(得分:1)
尝试不以静默方式运行任务,但输出转发到文件:
RAILS_ENV=staging bundle exec nohup cinemas:import >/tmp/log.txt 2>&1
因此对于cron,rvm有special wrappers,应运行以设置适当的环境,如下所示:
* * * * * cd folder; RAILS_ENV=staging /usr/local/rvm/wrappers/ruby-2.1.1@projectX/bundle exec nohup cinemas:import >/tmp/log.txt 2>&1
如果您使用rbenv,script runner将如下所示:
* * * * * /bin/bash -c '. $HOME/.rbenv/loader.sh; cd folder ; RAILS_ENV=staging bundle exec cinemas:import >/tmp/log.txt 2>&1'