2016-12-27 4 views
5

У меня есть rake задача, которая постоянно должна быть активной. Всякий раз, когда я запустил его по командеЗадача rake «rake task» выполнить в «RAILS_ENV = production» с nohup

RAILS_ENV=production rake jobs:abc 

он работает нормально, но когда я закрываю терминал rake работы получить stopped.So я нашел другое решение по нему с помощью nohup, чтобы запустить его в фоновом режиме.

я выполнить команду:

nohup RAILS_ENV=production rake jobs:work & 

, но он дает ошибку:

nohup: failed to run command ‘RAILS_ENV=production’: No such file or directory

Пожалуйста, предложите, чтобы выполнить способ rake задачи в производственной среде.

+0

это может быть проблема с окружающей средой, пожалуйста, перепроверить в папке окружающей среды в конфигурации является любой production.rb присутствует или нет? –

+0

production.rb присутствует в каталоге/config/environment /. «Нет такого файла или каталога» из-за команды «nohup» –

+0

вы пробовали эту работу nohup rake: work RAILS_ENV = production –

ответ

8

Установите переменную окружения перед командой nohup.

RAILS_ENV=production nohup rake jobs:work 
3

Попробуйте один

nohup rake jobs:work RAILS_ENV=production 

я прокомментировал решение выше, а

2

Если вам нужна nohup функциональность, вы должны также рассмотреть screen.

RAILS_ENV=production screen -L rake jobs:work 

Он запускает новый терминал, который не связан с вашей текущей сессией.

Чтобы вернуться на ваш обычный терминал, введите Ctrl+a, а затем d. Теперь вы можете выйти из системы безопасно, не прерывая задачу rake.

В качестве бонуса вы автоматически получаете файл журнала в screenlog.0.

Вы можете вернуться к процессу граблей, набрав:

screen -r 
Смежные вопросы