Системной службе не удается запустить приложение rails 6 на raspbian с ошибкой 127, 126 или 203 - PullRequest
0 голосов
/ 02 апреля 2019

Бета-приложение Rails 6, работающее на Raspbian stretch, приложение обычно загружается либо из cli с помощью обычной команды rails s, либо, если скрипт создается в корневом каталоге pi, а затем cd в правильный каталог приложения и загружает приложение. Если попытка запуска приложения с помощью Systemd продолжит повторяться, ошибки 127, 126 или 203 будут зависеть от формата файла .service Systemd.

При исследовании этой проблемы пробовали следующие уроки:

https://mikewilliamson.wordpress.com/2015/08/26/running-a-rails-app-with-systemd-and-liking-it/

https://medium.com/@ssscripting/basic-setup-of-rails-with-systemd-46ee067ec8d7

https://medium.com/@SatoshiTahara/autoload-puma-with-systemd-and-rbenv-ead7fa3fa593

https://www.crstin.com/en/rails-systemd/

http://rustamagasanov.com/blog/2017/02/24/systemd-example-for-a-simple-ruby-daemon-supervision/

и некоторые другие сообщения типа SO по теме:

https://superuser.com/questions/1237298/running-ruby-on-rails-as-systemd

Исправление сбоя службы systemd 203 / EXEC (такого файла или каталога нет)

https://www.raspberrypi.org/forums/viewtopic.php?t=203359

текущий код файла .service:

[Unit]
Description=evr server boot
After=network.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/evr
Environment=PATH=/bin:/usr/bin

ExecStart=/bin/bash -l 'rails s -b 192.168.1.66'
Restart=always

[Install]
WantedBy=multi-user.target

и текущая ошибка при запуске этой службы systemd:

pi@raspberrypi:~ $ sudo systemctl status evrserver
● evrserver.service - evr server boot
   Loaded: loaded (/etc/systemd/system/evrserver.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2019-04-02 15:58:54 BST; 55s ago
  Process: 540 ExecStart=/bin/bash -l rails s -b 192.168.1.66 (code=exited, status=127)
 Main PID: 540 (code=exited, status=127)

Apr 02 15:58:53 raspberrypi systemd[1]: evrserver.service: Unit entered failed state.
Apr 02 15:58:53 raspberrypi systemd[1]: evrserver.service: Failed with result 'exit-code'.
Apr 02 15:58:54 raspberrypi systemd[1]: evrserver.service: Service hold-off time over, scheduling restart.
Apr 02 15:58:54 raspberrypi systemd[1]: Stopped evr server boot.
Apr 02 15:58:54 raspberrypi systemd[1]: evrserver.service: Start request repeated too quickly.
Apr 02 15:58:54 raspberrypi systemd[1]: Failed to start evr server boot.
Apr 02 15:58:54 raspberrypi systemd[1]: evrserver.service: Unit entered failed state.
Apr 02 15:58:54 raspberrypi systemd[1]: evrserver.service: Failed with result 'exit-code'.

С опцией -l, переданной в строке Exec, ожидалось, что она запустится без ошибок и приложение rails загрузится. Любое направление здесь приветствуется.

...