【发布时间】:2021-03-10 13:04:14
【问题描述】:
我正在尝试将 Sinatra 应用程序作为 Systemd 单元启动。 这不是第一次,这个服务以前可以工作,但现在我卡住了。
systemctl start service 总是抛出找不到 gem sinatra
这是日志:
Nov 27 19:52:45 cloud.onehostcloud.hosting ruby[29074]: /usr/local/rvm/rubies/ruby-2.5.7-devel/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- sinatra (LoadError)
Nov 27 19:52:45 cloud.onehostcloud.hosting ruby[29074]: from /usr/local/rvm/rubies/ruby-2.5.7-devel/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
Nov 27 19:52:45 cloud.onehostcloud.hosting ruby[29074]: from /usr/lib/app/server.rb:34:in `<main>'
Nov 27 19:52:45 cloud.onehostcloud.hosting systemd[1]: app.service: main process exited, code=exited, status=1/FAILURE
app.service 文件:
[Unit]
Description=API Server Service
[Service]
Type=simple
Group=appuser
User=appuser
ExecStart=/usr/bin/ruby /usr/lib/app/server.rb
StartLimitInterval=30
StartLimitBurst=3
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
我已经检查过,$: 是正确的,所以如果我尝试使用相同的路径,则可以通过 irb 找到并包含所有宝石
将 CentOS 7 与 RVM Ruby 2.5.7 结合使用
谢谢!
【问题讨论】:
-
您的环境未加载 rvm,而这似乎是您的红宝石和宝石所在的位置。
-
解决方案是什么,让 systemd 加载 rvm 环境?
标签: ruby centos rubygems rvm systemd