每当我重新启动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.
答案 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更喜欢这个,因为您可以轻松地将多个站点链接到它,通过名称访问它们而不用担心端口等。