Crontab выполняет команду, но скрипт ruby ​​не запущен - PullRequest
0 голосов
/ 08 августа 2011

Я установил crontab для моего скрипта ruby.

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 выполняет команду (я проверил системный журнал:

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 ]

6 голосов
/ 08 августа 2011

Попробуйте:

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 голос
/ 09 мая 2012

Попробуйте запустить env -i $ SHELL --norc в терминале, а затем запустить скрипт ruby. Терминал будет иметь ту же среду, что и cron

1 голос
/ 08 августа 2011

Если вы используете файл .rvmrc в своем проекте, чтобы установить версию ruby ​​для вашего проекта.Затем вы должны указать rvm доверять файлу rvmrc в ~ / .rvmrc

rvm_trust_rvmrcs_flag=1

, это отключит запрос, и ваш cron не будет зависать.

...