【发布时间】:2013-12-25 23:39:49
【问题描述】:
我在生产中为我的 Rails 应用程序使用瘦服务器。我在 init.d 中使用 Thin,因此使用了 rvm 包装器。以下是我遵循的步骤:
root@:~# rvm gemset create ruby2
gemset created ruby2 => /usr/local/rvm/gems/ruby-2.0.0-p195@ruby2
root@:~# rvm alias create ruby2 ruby-2.0.0-p195@ruby2
Creating alias my_app for ruby-2.0.0-p195@ruby2.
Recording alias my_app for ruby-2.0.0-p195@ruby2.
root@:~# rvm wrapper ruby2 bootup thin
Saving wrappers to '/usr/local/rvm/bin'.
然后我在 /etc/thin 下为 Thin 创建了一个配置文件,如下所示:
---
require: []
log: log/thin.log
max_conns: 1024
pid: tmp/pids/thin.pid
wait: 30
timeout: 30
address: 0.0.0.0
max_persistent_conns: 100
chdir: /root/app1/app
environment: production
port: 3000
daemonize: true
/etc/init.d/thin has configs as followS:
DAEMON=/usr/local/rvm/bin/bootup_thin
SCRIPT_NAME=/etc/init.d/thin
CONFIG_PATH=/etc/thin
我遇到的实际问题是,当我使用 /etc/init.d/thin start 启动瘦进程时,即使命令完成且没有错误,我也看不到任何进程。当我停止它时(/etc/init.d/thin stop)我得到
/usr/local/rvm/gems/ruby-2.0.0-p195@ruby2/gems/thin-1.6.1/lib
/thin/daemonizing.rb:129:in `send_signal': Can't stop process, no PID found in tmp/pids
/thin.pid (Thin::PidFileNotFound)
有什么想法吗?
谢谢
【问题讨论】:
-
你试过这个解决方案了吗? stackoverflow.com/questions/17023758/… 或任何这些解决方案? google.co.uk/…
-
你能发布你的 /etc/init.d 脚本文件吗?
-
我做了很多事情,比如重新启动我的机器、进行捆绑安装和更改权限,但不确定哪一个有效,但现在它有效。但是我的原始帖子还有另一个问题。我创建了一个像 rvm wrapper ruby2 bootup thin 这样的包装器,如在线示例中给出的,但是当我执行独立命令 bootup thin 时,它给出了一个错误。但是现在一切正常,我可能需要采取任何其他预防措施,尤其是使用 wrapper 命令?抱歉,这是我第一次自己开发 Rails 应用程序
标签: ruby-on-rails rvm thin init.d