如何在ubuntu上自动运行rails?

时间:2014-02-08 09:57:12

标签: ruby-on-rails ubuntu nginx

我在digitalocean上有一台服务器并安装了rails。现在我可以通过打开并运行命令来运行它。但是,我不希望我的电脑24小时,所以我需要一些自动运行它的方法。作为前端开发人员,我没有太多关于设置nginx的知识。有没有简单快捷的方法呢?

1 个答案:

答案 0 :(得分:1)

你有几个选择。您可以使用nohup命令或screen命令从终端运行它。 nohup是一个更简单的命令。您应该能够在命令行中执行man nohup以查看相关说明。基本上你应该能够运行:

nohup whatever-your-command-to-start-nginx-is &

和nginx将开始。手册页将告诉您标准输出将转到当前目录中的nohup.out,或者如果不可能则转到$ HOME(但是nginx正常日志记录应该转到配置文件告诉它的任何地方)。最后的&符只意味着命令将在后台运行,所以你得到你的提示(虽然正常的nginx启动会这样做,所以它可能不需要)。 nohup表示退出终端时命令不会退出(“没有挂起”)。

更好的方法是使用init脚本。您可能已经拥有一个,具体取决于您安装nginx的方式。有/etc/init.d/nginx个文件吗?如果是这样,/etc/init.d/nginx start应该启动nginx,/etc/init.d/nginx stop应该停止它。如果没有,你可以在某处抓住一个。看看http://wiki.nginx.org/InitScripts

您还可以进行设置,以便在系统启动时自动启动(使用init脚本)。如果nginx的安装已经为您提供了init脚本,那么也可能已经为您设置了这个。 (这里google的关键词可能是“runlevels”。)

现在在Ubuntu中,我认为upstart是处理服务的首选,包括在启动时启动它们(我认为它也可以做其他事情,比如重新启动死机服务)。但是,我对它没有任何经验,这个关于serverfault的问题似乎表明它与nginx的混合体验:

https://serverfault.com/questions/143461/how-can-i-start-nginx-via-upstart/391737

(虽然这是一个非常古老的问题)