Rails 앱을 부팅하기 위한 서비스에 몇 가지 문제가 있습니다. Ruby 설치는 rbenv를 통해 관리되며 서비스 파일은 다음과 같습니다.
[Unit]
Description=evr server boot
After=network.target
After=local-fs.target
[Service]
Type=forking
User=pi
Group=pi
WorkingDirectory=/home/pi/evr
ExecStart=/home/pi/.rbenv/bin/rbenv bundle exec rails s -b 192.168.1.66
TimeoutSec=180
RestartSec=180s
Restart=always
[Install]
WantedBy=multi-user.target
시스템이 부팅될 때 이 서비스와 관련하여 다음 오류가 발생합니다.
$ systemctl status evrserver
● evrserver.service - evr server boot
Loaded: loaded (/etc/systemd/system/evrserver.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2019-04-03 18:34:22 BST; 2min 51s ago
Process: 425 ExecStart=/home/pi/.rbenv/bin/rbenv bundle exec rails s -b 192.168.1.66 (code=exited, status=1/FAILURE)
CGroup: /system.slice/evrserver.service
Apr 03 18:34:22 raspberrypi systemd[1]: Failed to start evr server boot.
Apr 03 18:34:22 raspberrypi systemd[1]: evrserver.service: Unit entered failed state.
Apr 03 18:34:22 raspberrypi systemd[1]: evrserver.service: Failed with result 'exit-code'.
PATH에 문제가 있는 것으로 보이며 'rails' 명령을 실행하려고 하면 실패합니다. 서비스가 Rails 앱을 성공적으로 시작하려면 이를 어떻게 방지할 수 있나요?
답변1
그래서 간단했지? ExecStart 줄에서 'bundle' 앞에 'exec'를 잊어버렸고 유형을 'forking' 대신 'simple'로 설정해야 했던 것 같습니다.