如何在我的 ubuntu 12.04 机器上安装 rvm 的情况下启动 unicorn_rails 作为启动脚本?

如何在我的 ubuntu 12.04 机器上安装 rvm 的情况下启动 unicorn_rails 作为启动脚本?

我的服务器上有一个 rails 应用程序。我有一个脚本 startup.sh,它启动 unicorn_rails,然后启动 nginx。

为了让我的服务器在系统启动时启动,我在 /etc/rc.local 中添加了一行来调用我的启动脚本

但是,这不起作用。我添加了一些检查以确保脚本被调用,并且确实被调用了。我认为对 unicorn_rails 的调用失败了。有人有这方面的经验吗?

答案1

我遇到了同样的问题,并且能够通过为 unicorn_rails 创建 init.d 脚本然后在启动时使用 chkconfig 启用它来解决我的问题。

chmod +x /etc/init.d/unicorn
chkconfig unicorn on

示例 unicorn_rails init.d 脚本。 https://github.com/wayneeseguin/rvm/blob/master/contrib/unicorn_init.sh

我在脚本中做的唯一重大更改是将 nginx 服务调用添加到操作块中。这样,当您启动/停止/重新启动或在 unicorn_rails 上运行状态时,nginx 也会随之运行。

答案2

事实证明这是一个用户权限问题。Unicorn、ruby 和 rails 是我以常规登录名安装的,而脚本是以 root 用户身份启动的。这导致 root 用户看不到已安装的 gem。我通过以常规非 root 用户身份使用“su”调用第二个脚本解决了这个问题。

相关内容