我正在使用bundle exec thin start -C /etc/thin/staging.yml
我使用rvm,ruby版本是ree-1.8.7
/etc/thin/staging.yml
的内容:
---
timeout: 30
pid: /home/myuser/apps/g/shared/pids/thin.pid
max_persistent_conns: 512
servers: 3
chdir: /home/myuser/apps/g/current
port: 3040
require: []
log: /home/myuser/apps/g/shared/log/thin.log
daemonize: true
address: 0.0.0.0
max_conns: 1024
wait: 30
environment: staging
lsof -i :3040-3042
将显示三个ruby进程侦听端口3040-3042,但pid文件包含三个不同(略低)的pid。所有六个流程都称为merb : merb : Master
当我使用bundle exec thin stop -C /etc/thin/staging.yml
停止瘦身时,thin首先向pid文件中的进程发送QUIT信号,然后在超时后发送KILL信号。
pid文件现已消失,瘦日志显示服务器已停止,但仍有三个ruby进程正在侦听端口3040-3042,因此后续thin start
将失败。
两个进程的lsof -p
输出之间的唯一区别是/lib/libnss_files-2.12.so库和postgres套接字。
我的问题是:
thin stop
期间收到超时?答案 0 :(得分:0)
显然,Merb引导程序会执行分支。脑死亡是怎么回事!
在Merb::Config[:fork_for_class_load] = false
。
config.ru