Рейтинг:0

Как запустить фоновый процесс при запуске сервера и сохранить его в рабочем состоянии

флаг cn

Примечание. Я не был уверен, стоит ли мне спрашивать об этом здесь, переполнение стека или ???

Я переношу приложение Ruby on Rails с Heroku на AWS. Архитектура сервера довольно ванильная:

  • База данных
  • Веб сервер
  • Рабочий сервер

База данных и веб-сервер успешно перенесены на AWS. Рабочий сервер находится на палубе.

FWIW: веб-сервер aws работает под управлением Ubuntu 20.x с Passenger / nginx в качестве http-сервера.

Сейчас я работаю над миграцией Worker, который развертывается с тем же кодом, что и веб-сервер. Единственная разница в том, что Worker не является общедоступным и использует Ruby Gem. delayed_job для обработки фоновых запросов.

Рабочий сервер

  • Рабочий сервер был создан из ами на основе веб-сервера.
  • Удалена конфигурация сервера nginx, которая была артефактом веб-сервера.

Вопросы

  1. Как настроить рабочий сервер для автоматического запуска и запуска фоновых заданий при запуске сервера?

  2. Как сохранить рабочий процесс, если он выйдет из строя и выключится?

В Heroku командная строка, запускающая рабочий сервер:

комплект заданий exec rake: работа

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

К вашему сведению: я работаю с Windows/.NET. Среда Linux/Ruby/Rails все еще довольно нова для меня.

user535733 avatar
флаг cn
Поищите учебник по systemd-сервисам.
флаг in
На этот вопрос [есть ответ на StackOverflow] (https://stackoverflow.com/a/39720001/14952832)
флаг cn
@matigo - я рассмотрел вопрос, на который вы ссылались; а также около 50 других на SO. Вопрос/ответ, на который вы ссылаетесь, может работать, но это не похоже на долгосрочное решение, если процесс не удался. На самом деле я потратил около дня на изучение этого и не нашел хорошего канонического ответа. Я смотрю на сервисы systemd, и на первый взгляд это кажется хорошим шагом вперед.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.