【问题标题】:run puma server as a service at centos 7 - no ruby found在 centos 7 上将 puma 服务器作为服务运行 - 未找到 ruby
【发布时间】:2015-04-18 21:08:46
【问题描述】:

有很多东西我不明白,所以我的问题可能很愚蠢。
我想在 centos 7 上将 puma ror 服务器作为 systemd 服务运行。使用使用 rvm 安装的 ruby​​。
我的 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

一切正常,但我可能做错了什么

【问题讨论】:

标签: ruby-on-rails ruby service puma systemd


【解决方案1】:

看起来您需要在运行任务时加载 rvm。 systemd 在 shell 中运行,而不是在 bash 中,你的 bashrc 将不会被加载

【讨论】: