在开发环境中登录之前自动运行rails app

时间:2014-07-22 01:24:40

标签: ruby linux ruby-on-rails-4.1 xubuntu

每当我重新启动linux盒子时,我都必须运行rails s以在dev env中启动rails应用程序。

有没有办法在linux重启时自动启动给定的rails应用程序?

我认为解决方案已接近在生产环境中运行应用程序。

我从未在生产网站上运行过应用程序。

更新1

我已经搜索了更多关于这个问题的信息,发现了一些与我亲近的事情How can I make “rc.local” run on startup?

我的/etc/rc/local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/askar/.rvm/rubies/ruby-2.1.2/bin/ruby /home/askar/work/rails/smn/bin/rails s

exit 0
  

$ ls -al /etc/rc.local

     

-rwxr-xr-x 1 root root 423 Jul 23 12:41 /etc/rc.local

我能够经营:

$/etc/rc.local &

但是当我尝试运行时,我会在下次启动时自动启动:

sudo /etc/init.d/rc.local start

它给了我错误:

Could not find rake-10.2.1 in any of the sources
Run `bundle install` to install missing gems.

3 个答案:

答案 0 :(得分:1)

您需要运行像Apache或Nginx这样的真实Web服务器以及像Passenger这样的ruby连接器。做rail s要容易得多。您怀疑它就像设置临时或生产服务器一样。

有许多关于如何执行此操作的优秀教程,尤其是对于Linux。

答案 1 :(得分:0)

您只需添加bash命令:

cd path/to/rails/project; rails s

到您的~/.bashrc文件等登录脚本。每次登录linux框时,登录脚本都会启动rails服务器。在OSX中,您将向LaunchAgents添加一个登录项。

答案 2 :(得分:0)

您还可以查看Prax https://github.com/ysbaddaden/prax这样的东西,它是Pow for OSX的纯红宝石替代品,允许您将其作为机架代理运行并通过sitename.dev访问您的网站。我比rails更喜欢这个,因为您可以轻松地将多个站点链接到它,通过名称访问它们而不用担心端口等。