有一款评价很高的缺陷管理应用程序叫 Redmine。它是用 Ruby 编写的。我按照他们的指示。但是,我想将该应用程序作为服务运行,每次服务器重新启动时都会自动启动。如何将 Ruby 网站添加为 Linux 服务?
答案1
如果你使用的是较新版本的 Ubuntu,你需要输入Upstart 脚本- 除了介绍之外,/etc/init 中还充满了示例。
如果你正在做其他事情,你需要创建一个初始化脚本 -redmine 维基有一个专门为redmine定制的示例。
答案2
不存在所谓的“Ruby 网站”;轨道站点需要运行一个应用服务器进程来为应用程序提供请求服务,这通常是 mongrel、thin 或 unicorn 之一(如果您使用 webrick,那么您已经失败了)。
您的选择大致如下:
- 为其编写一个启动脚本,按照特定发行版的程序在启动时调用该启动脚本
- 在 cron 中使用 @reboot 规则(uuuuugly)
- 使用类似 daemontools 的工具来管理服务器进程
我支持 (3),因为它太棒了。我预计会有很多人推荐用 monit 代替 daemontools;我这样做过,但我讨厌它的每一秒。
答案3
答案4
如果您已经在运行 apache 或其他 Web 服务器,则无需将 Redmine 作为单独的服务运行 - 只需让它在您的 Web 服务器下运行即可。对于 Apache,只需按照此处的说明安装 Passenger:
http://www.modrails.com/install.html
然后在 Apache 中添加一个指向该站点路径的条目,如下所示:
<VirtualHost *:80>
ServerName www.mycook.com
DocumentRoot /webapps/mycook/public
<Directory /webapps/mycook/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>