Как запустить грабли: работа в фоновом режиме?

Я развертываю приложение Sharetribe. Следуя их документации, мне нужно запустить bundle exec rake RAILS_ENV=production jobs:work, Проблема в том, что после выполнения этой команды мне нужно закрыть SSH соединение, и для этого мне нужно выйти jobs процесс.

Как я могу бежать bundle exec rake RAILS_ENV=production jobs:work в фоновом режиме?

3 ответа

Интеграция фона в красящие вещества при запуске.

Для этого мы будем использовать [systemd].

  1. Создайте файл YourJob.service в / etc / systemd / system /. # Файл будет использоваться для определения кода, который будет выполняться в фоновом режиме.
  2. Запустите команду "включить systemctl YourJob.service"
  3. Создайте файл сценария.sh в любой такой директории "/home/marketuser/bin/rakejob.sh"C
  4. Проверял статус выполнения сервиса YourJob.service с помощью команды "status systemctl tmarketjob.service"
  5. перезагрузите сервер.

Файловая структура.

# 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 или просто добавив символ & в конце команды, но обратите внимание, что решение с & будет остановлено, если вы закроете вкладку терминала с ним.

Другие вопросы по тегам