对于开始应用,我使用Foreman。 Foreman从Procfile开始进程
web: bundle exec rails server thin -p $PORT
worker: bundle exec rake environment resque:work QUEUE=send_mail
api: bundle exec rails server thin -p $PORT
如果我在控制台中按控制+ C我操作工头,工头结束但是运行过程没有被杀死。当工头被杀时,是否有可能杀死领班跑的过程。
答案 0 :(得分:8)
下面的示例假定使用的端口是4567,然后执行:
lsof -i :4567
这为你提供了流程的pid,比如34564,然后用
杀死它kill -9 34564
如果您使用的是Windows,请安装cygwin以获取lsof
和kill
命令。
答案 1 :(得分:1)
只要有打开的连接,Thin就不会终止。 Faye使用长轮询或WebSockets(持久连接)。 所以最终结果是Thin正在等待你的Faye连接关闭。
尝试关闭Thin安装的信号处理程序,你应该没问题。
答案 2 :(得分:0)
我已经组装了一个小的单行程序,可以找到进程ID并杀死进程
kill -9 `lsof -P -i :5000 | sed -n 's/python *\([0-9]*\).*\:5000.*/\1/p'`
在这种情况下,我在端口5000上运行python进程,但您可能正在其他端口上运行其他类型的进程,因此您需要相应地自定义此单行。