Сценарий puma systemd не запускается - PullRequest
0 голосов
/ 04 января 2019

Я копировал и вставлял фрагменты следующих систем puma для запуска сценария из нескольких источников, но он не работает. Система представляет собой Debian 9.6, и пользователь rails установил ruby ​​через rvm. Пользователь rails может запустить команду RAILS_ENV=production bundle exec puma -C /var/www/test-optimum/current/config/puma.rb --daemon

Что не так с этим скриптом?

[Unit]
Description=Test Puma HTTP Server
After=network.target

[Service]
Type=simple
User=rails
WorkingDirectory=/var/www/test-optimum/current
ExecStart=/bin/bash -lc 'RAILS_ENV=production bundle exec puma -C /var/www/test-optimum/current/config/puma.rb --daemon'
ExecStop=/home/rails/.rvm/bin/rvm default do bundle exec pumactl -S /var/www/test-optimum/shared/tmp/pids/puma.pid stop

PIDFile=/var/www/test-optimum/shared/tmp/pids/puma.pid
Restart=always

[Install]
WantedBy=multi-user.target

При попытке запустить его с systemctl start puma я получаю следующие ошибки:

● test-puma.service - test Puma HTTP Server
  Loaded: loaded (/etc/systemd/system/test-puma.service; disabled; vendor preset: enabled)
  Active: failed (Result: exit-code) since Fri 2019-01-04 17:10:43 CET; 6min ago
  Process: 3351 ExecStop=/home/rails/.rvm/bin/rvm default do bundle exec pumactl -S /var/www/test-optimum/shared/tmp/pids/puma.pid stop (code=exited, status=1/FAILURE)
  Process: 3239 ExecStart=/bin/bash -lc RAILS_ENV=production bundle exec puma -C /var/www/test-optimum/current/config/puma.rb --daemon (code=exited, status=0/SUCCESS)
Main PID: 3239 (code=exited, status=0/SUCCESS)
      CPU: 1.179s

Jan 04 17:10:42 test.example.com systemd[1]: test-puma.service: Unit entered failed state.
Jan 04 17:10:42 test.example.com systemd[1]: test-puma.service: Failed with result 'exit-code'.
Jan 04 17:10:43 test.example.com systemd[1]: test-puma.service: Service hold-off time over, scheduling restart.
Jan 04 17:10:43 test.example.com systemd[1]: Stopped test Puma HTTP Server.
Jan 04 17:10:43 test.example.com systemd[1]: test-puma.service: Start request repeated too quickly.
Jan 04 17:10:43 test.example.com systemd[1]: Failed to start test Puma HTTP Server.
Jan 04 17:10:43 test.example.com systemd[1]: test-puma.service: Unit entered failed state.
Jan 04 17:10:43 test.example.com systemd[1]: test-puma.service: Failed with result 'exit-code'.

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Вот решение:

[Unit]
Description=Test Puma HTTP Server
After=network.target

[Service]
Type=simple
User=rails
WorkingDirectory=/var/www/test-optimum/current
ExecStart=/bin/bash -lc 'RAILS_ENV=production bundle exec puma -C /var/www/test-optimum/current/config/puma.rb'
ExecStop=/home/rails/.rvm/bin/rvm default do bundle exec pumactl -S /var/www/test-optimum/shared/tmp/pids/puma.pid stop

PIDFile=/var/www/test-optimum/shared/tmp/pids/puma.pid
Restart=always

[Install]
WantedBy=multi-user.target
0 голосов
/ 05 января 2019

Что не так с этим скриптом?

Вероятно, только тип услуги:

Основной PID: 3239 (код = выход, статус = 0 / УСПЕХ)

Кажется, основной процесс - это разветвление. Попробуйте forking вместо simple: https://www.freedesktop.org/software/systemd/man/systemd.service.html#Options

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...