Systemd и Puma в бесконечном цикле запуска

Я бьюсь головой о стену с помощью puma и systemd. Я использовал Foreman для настройки файлов systemd, но не могу вывести puma из цикла перезапуска. Убунту 16.

Jun 19 02:48:12 ip-172-31-28-225 systemd[1]: Stopped rajlogviewer-web.service.
Jun 19 02:48:12 ip-172-31-28-225 systemd[1]: Started rajlogviewer-web.service.
Jun 19 02:48:12 ip-172-31-28-225 rajlogviewer-web.service[8954]: APP_DIR = /home/ubuntu/rajlogviewer, SHARED_DIR /home/ubuntu/rajlogviewer/shared
Jun 19 02:48:12 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] Puma starting in cluster mode...
Jun 19 02:48:12 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Version 3.6.0 (ruby 2.3.3-p222), codename: Sleepy Sunday Serenity
Jun 19 02:48:12 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Min threads: 1, max threads: 6
Jun 19 02:48:12 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Environment: production
Jun 19 02:48:12 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Process workers: 2
Jun 19 02:48:12 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Preloading application
Jun 19 02:48:14 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Listening on tcp://0.0.0.0:3000
Jun 19 02:48:14 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Listening on unix:///home/ubuntu/rajlogviewer/shared/tmp/sockets/puma.sock
Jun 19 02:48:14 ip-172-31-28-225 rajlogviewer-web.service[8954]: [8954] * Daemonizing...
Jun 19 02:48:24 ip-172-31-28-225 systemd[1]: rajlogviewer-web.service: Service hold-off time over, scheduling restart.
Jun 19 02:48:24 ip-172-31-28-225 systemd[1]: Stopped rajlogviewer-web.service.
Jun 19 02:48:24 ip-172-31-28-225 systemd[1]: Started rajlogviewer-web.service.

Просто постоянно перезагружается. Вот мой файл инициализации systemd /etc/systemd/system/rajlogviewer-web.service

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/rajlogviewer/current
#Environment=PATH=/home/ubuntu/.rvm/gems/ruby-2.3.3@rajlogsViewer/bin:$PATH
WorkingDirectory=/home/ubuntu/rajlogviewer/current/
ExecStart=/bin/bash -lc 'PATH=/home/ubuntu/.rvm/gems/ruby-2.3.3@rajlogsViewer/bin:$PATH exec /home/ubuntu/.rvm/bin/rvm ruby-2.3.3 do bundle exec puma -C /home/ubuntu/rajlogviewer
/shared/config/puma.rb --daemon'
Restart=no
RestartSec=10
StandardInput=null
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=%n
KillMode=mixed
TimeoutStopSec=5

Приложение обычно загружается за 5 секунд при загрузке с помощью «cap production puma:start», что работает, поэтому RestartSec=10 должен работать. Делать это 20 секунд не имеет значения.

В puma.stderr.log и puma.stdout.log ничего интересного.

Любые идеи?


person rajat banerjee    schedule 19.06.2017    source источник


Ответы (1)


Вы должны удалить опцию --daemon из systemd, существует несколько типов юнитов:

Настраивает тип запуска единичного процесса, влияющий на функциональность ExecStart и связанные с ним параметры. Один из:

simple — значение по умолчанию. Процесс, запущенный с помощью ExecStart, является основным процессом службы.

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

oneshot — этот тип похож на простой, но процесс завершается перед запуском последующих единиц. dbus — этот тип похож на простой, но последующие модули запускаются только после того, как основной процесс получает имя D-Bus.

уведомление — этот тип аналогичен простому, но последующие единицы запускаются только после отправки сообщения уведомления с помощью функции sd_notify().

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

Значение по умолчанию — simple, ради настройки puma вы используете --daemon опции, которые противоречат конфигурации systemd.

person Зелёный    schedule 19.06.2017
comment
Спасибо, это было именно так. иногда думаешь, что он умный, но это доказало обратное!!! - person rajat banerjee; 19.06.2017