Запустить сервер puma как сервис на centos 7 - рубин не найден

Есть много вещей, которые я не понимаю, поэтому мой вопрос может быть глупым.
Я хочу запустить сервер pumaror в качестве службы systemd на centos 7. Используйте ruby, установленный с помощью rvm.
Мой файл puma_test.service:

[Unit]
Description=Puma application server
After=network.target

[Service]
WorkingDirectory=/var/www/test_app
Environment=RAILS_ENV=development

PIDFile=/var/www/shared/pids/puma.pid
ExecStart=/usr/local/rvm/gems/ruby-2.2.1/gems/bundler-1.9.4/bin/bundle exec puma -e development -b unix:///var/www/shared/pids/puma.sock --pidfile /var/www/shared/pids/puma.pid

[Install]
WantedBy=multi-user.target

но когда я запускаю его, он не работает. Я получаю ошибку (из journalctl):

  kwi 18 22:56:15 vps150852.ovh.net systemd[1]: Starting Puma application server...
kwi 18 22:56:15 vps150852.ovh.net systemd[1]: Started Puma application server.
kwi 18 22:56:15 vps150852.ovh.net bundle[2072]: /usr/bin/env: ruby: No such file or directory
kwi 18 22:56:15 vps150852.ovh.net systemd[1]: puma_test.service: main process exited, code=exited, status=127/n/a
kwi 18 22:56:15 vps150852.ovh.net systemd[1]: Unit puma_test.service entered failed state.

когда я запускаю i /usr/www/test_app

/usr/local/rvm/gems/ruby-2.2.1/gems/bundler-1.9.4/bin/bundle exec puma -e development -b unix:///var/www/shared/pids/puma.sock --pidfile /var/www/shared/pids/puma.pid

все работает нормально, но я, вероятно, делаю что-то не так

1 ответ

Похоже, вам нужно загрузить rvm при запуске вашей задачи. systemd запускается в оболочке, а не в bash, ваш bashrc не будет загружен

Другие вопросы по тегам