我开始了bundle exec thin start -C /etc/thin/staging.yml
薄每台服务器启动两个红宝石进程,杀死错一个
我用RVM三点细的过程,红宝石版本是稀土元素-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
将显示在端口3040-3042上侦听的三个ruby进程,但是pid文件包含三个不同的(略低)pid。所有这六个进程都被调用merb : merb : Master
当我用bundle exec thin stop -C /etc/thin/staging.yml
停止稀释时,瘦首先向PID文件中的进程发送QUIT信号,然后在超时后发出KILL信号。
pid文件现在不见了,瘦日志显示服务器已停止,但仍有三个ruby进程在端口3040-3042上侦听,因此随后的thin start
将失败。
两个进程的输出lsof -p
之间的唯一区别是/lib/libnss_files-2.12.so库和postgres套接字。
我的问题是:
- 为什么我在
thin stop
得到超时? - 为什么每个服务器有两个进程而不是一个?
- 我该如何解决这个问题优雅(不杀-9)