Как запустить сервер Foreman в фоновом режиме на производстве?

Я успешно развернул свое приложение rails на VPS, используя сервер Ubuntu с Digital Ocean. Я использую Foreman для запуска многих процессов, я могу запустить свой сервер Foreman с foreman start, если я захожу на свой сервер по ssh, но когда я закрываю терминал, все процессы останавливаются. как сделать чтобы он постоянно работал в фоновом режиме?

заранее спасибо.


person Alex Onozor    schedule 24.10.2015    source источник


Ответы (2)


  • ssh на удаленную машину
  • запустите tmux, набрав tmux в оболочке
  • запустите процесс, который вы хотите внутри запущенного сеанса tmux
  • выйти/отключить сеанс tmux, набрав Ctrl+B, а затем D

Теперь вы можете безопасно выйти из удаленной машины, ваш процесс будет продолжать работать внутри tmux. Когда вы вернетесь снова и захотите проверить статус вашего процесса, вы можете использовать tmux attach для подключения к вашему сеансу tmux.

Если вы хотите, чтобы несколько сеансов выполнялись параллельно, вы должны назвать каждый сеанс, используя Ctrl-B и $. Вы можете получить список текущих сеансов, используя tmux list-sessions.

tmux может делать гораздо более сложные вещи, чем обрабатывать одно окно за один сеанс. Для получения дополнительной информации загляните в man tmux или http://tmux.github.io/ . Часто задаваемые вопросы об основных различиях между screen и tmux доступны здесь.

person ekhaliki    schedule 24.10.2015

Лучшим вопросом было бы «как мне запустить приложение Rails как сервис?».

Foreman — отличный инструмент для разработки, но он не предлагает наблюдения за процессами, автоматического запуска при включении сервера, ротации журналов или возможности управлять процессами с помощью сигналов Unix.

Если у вас Ubuntu 15.04, у вас установлен systemd, и вы должны использовать его вместо этого. Форман может даже экспортировать вашу конфигурацию через foreman export systemd (см. справочную страницу мастера).
Если ваша Ubuntu старше, вы будет иметь Upstart, который, опять же, Форман может экспортировать в (foreman export upstart).

Использование nohup, screen или tmux для запуска процессов — ужасный совет, который сделает вашу жизнь излишне тяжелой даже в краткосрочной перспективе.

person Nils Landt    schedule 24.10.2015
comment
Это неправда. Мне нужен бригадир в фоновом режиме на моей машине разработки. В основном потому, что мне нужен сценарий миграции, который выполняет git pull; rake db:migrate, но при этом мне нужны мои postgresql, redis и т. д. Сценарий bash выполнил бы foreman start -f updateonly.yml &; PID=$?, а затем по завершении kill $PID Но Форман глуп и нуждается в экземпляре tmux или screen. Серьезно ВТФ? как это складывается?! (правило композиции Unix) - person Sukima; 17.05.2016