【问题标题】:Starting god as deploy user以部署用户身份启动上帝
【发布时间】:2016-02-11 11:40:08
【问题描述】:

我有一个 init.d 脚本,可以在重启后在我的服务器上启动 God。

我已经运行了 sudo chmod +x /etc/init.d/godsudo update-rc.d -f god defaults,当我作为部署用户运行 /etc/init.d/god start 时,我没有任何问题,上帝开始了。

但是,当我重新启动服务器时,上帝并没有启动。

当我尝试以 root 身份手动启动 God 时,出现此错误:

Your Ruby version is 1.9.3, but your Gemfile specified 2.3.0

我认为问题与 root 没有 rvm 或 ruby​​ 2.3.0 有关。有没有办法将 init.d 脚本作为 deploy 运行?

我使用的是 Ubuntu 14.04、ruby 2.3.0 和 god 0.13.7

【问题讨论】:

  • 初始化脚本从超级用户运行。因此,使用了超级用户环境。而且您的目标机器似乎在 su env 中安装了 Ruby 1.9.3 版本。修复它的最简单方法是:运行sudo su 并安装rvm,然后以超级用户身份 安装Ruby 2.3。
  • 我宁愿不以 root 身份安装 rvm,因为这意味着以 root 身份维护 ruby​​ 版本并为将来的任何更新进行部署。如果我忘记这样做并且上帝倒下了,我会有很多问题。

标签: ruby-on-rails ruby linux god


【解决方案1】:

您可以使用sudo 命令以任何用户身份运行任何命令(或执行脚本);只需使用-u 标志来指定用户。 示例:

sudo -u deploy /etc/init.d/god

在此处查看更多信息:http://www.sudo.ws/man/1.8.15/sudo.man.html

【讨论】:

  • 感谢您的帮助,但运行 sudo -u deploy /etc/init.d/god start 仍然给我 ruby​​ 版本错误。
  • 如果您遇到 Bundler 错误,那么您应该检查您的 Gemfile 和 Bundler 配置,以确保它与系统上安装的 ruby​​ 匹配。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 2020-06-04
  • 2013-02-04
  • 2016-12-27
  • 2015-04-29
  • 1970-01-01
相关资源
最近更新 更多