Как запустить грабли: работа в фоновом режиме?
Я развертываю приложение Sharetribe. Следуя их документации, мне нужно запустить bundle exec rake RAILS_ENV=production jobs:work
, Проблема в том, что после выполнения этой команды мне нужно закрыть SSH
соединение, и для этого мне нужно выйти jobs
процесс.
Как я могу бежать bundle exec rake RAILS_ENV=production jobs:work
в фоновом режиме?
3 ответа
Интеграция фона в красящие вещества при запуске.
Для этого мы будем использовать [systemd].
- Создайте файл YourJob.service в / etc / systemd / system /. # Файл будет использоваться для определения кода, который будет выполняться в фоновом режиме.
- Запустите команду "включить systemctl YourJob.service"
- Создайте файл сценария.sh в любой такой директории "/home/marketuser/bin/rakejob.sh"C
- Проверял статус выполнения сервиса YourJob.service с помощью команды "status systemctl tmarketjob.service"
- перезагрузите сервер.
Файловая структура.
# YourJob.service
[Unit]
Description = Tmarket background processing daemon program
[Service]
Type = Single
ExecStart = / home / marketuser / bin / rakejob.sh
Restart = always
[Install]
WantedBy = graphical.target
# Rakejob.sh
! / Бен / Баш
export PATH = / home / marketuser / bin: /home/marketuser/.nvm/versions/node/v6.1.0/bin: /home/marketuser/.rbenv/plugins/ruby-build/bin: / home / marketuser /. rbenv / shims: /home/marketuser/.rbenv/bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games
cd / var / www / tmarket /
exec rake jobs: work
[-] PATH получается путем выполнения консольной команды 'echo $ PATH'. Tmarket - это каталог нашего приложения RoR.
Пожалуйста, включите gem "daemons" в ваш Gemfile. И используйте команду ниже
RAILS_ENV= сценарий производства / отложенное начало работы
Для получения дополнительной информации, пожалуйста, проверьте отложенное задание.
Вы можете запустить ее как любую другую консольную команду, используя nohup или просто добавив символ & в конце команды, но обратите внимание, что решение с & будет остановлено, если вы закроете вкладку терминала с ним.