微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 即使重新启动,我如何保持乘客独立?

我有几个应用程序在ruby 1.9.2上运行rails 3,并使用Nginx乘客部署在Ubuntu 10.04 LTS机器上.现在,我需要添加一个运行在ruby 1.8.7(REE)和Rails 2上的新应用程序.我完成了使用RVM,Passenger Standalone和一个反向代理.

问题是,每当我重新启动服务器(例如安装安全更新)时,我必须手动启动Passenger Standalone.

有办法自动启动吗?我被告知要使用Monit或God,但是我无法编写适合与Passenger Standalone合作的适当食谱.我也有上帝和RVM的一些问题,所以如果你有一个不使用神的解决方案,或者如果你知道如何正确地配置上帝/ Rvm,那就更好了.

最佳答案
这是我工作的使用Upstart(Ubuntu 10.04)启动乘客守护进程

我的环境使用rvm与ruby 1.9.2和apache和我的rails应用程序通过capistrano部署

# Upstart: /etc/init/service_name.conf
description "start passenger stand-alone"
author "Me MysqL

# When to stop the service
stop on runlevel [016]

# Automatically restart process if crashed
respawn

# Essentially lets upstart kNow the process will detach itself to the background
expect fork

# Run before process
pre-start script
end script

# Start the process
script
        cd /var/path/to/app/staging/current
        sh HOME=/home/deploy /usr/local/rvm/gems/ruby-1.9.2-p136@appname/gems/passenger-3.0.7/bin/passenger start --user 'deploy' -p '5000' -a '127.0.0.1' -e 'production'
end script

和apache配置:

Upstart没有设置乘客所依赖的ENV [‘HOME],所以在执行乘客指挥时必须通过.除此之外,它挺直的.

调试注意事项:https://serverfault.com/questions/114052/logging-a-daemons-output-with-upstart(在脚本块中的第二行追加>> /tmp/upstart.log 2& 1)

希望这可以帮助.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐