2012-10-09 117 views
3

我使用金字塔pserve运行Gunicorn这样的特定服务器:杀pserve(Gunicorn)从金字塔

pserve production.ini 

production.ini

[server:main] 
use = egg:gunicorn#main 
host = 0.0.0.0 
port = 8080 
workers = 3 
worker_class = gevent 
daemon = true 

它返回PID

Starting server in PID XXXXX. 

但我不能通过运行杀死它

# kill XXXXX 
-bash: kill: (XXXXX) - No such process 

# pserver --stop-daemon XXXXX 
No PID File exists in pyramid.pid 

到现在,我一直在使用

pkill pserve 

,但现在,我有多个服务器在运行,所以它会杀了我的所有服务器。

我该如何杀死一个特定的运行服务器?

+0

服务器实际在运行吗?上次我使用pserve甚至gunicorn_paster用paster尝试'daemon = true'。它产卵了一个过程,然后死亡。即使我指定了应该写入文件的pid文件,它也没有做任何事情。 –

回答

2

如果服务器实际运行,我会尝试类似的东西。

ps -ax | grep pserv[e] 

它会在第一列显示其pid的所有进程。如果有什么符合你的要求。你可以杀死它。 x选项应显示用于启动进程的命令行。如果幸运的话,它会显示它是在“该”目录或“该”配置文件中启动的。

否则,可能会检查哪个进程在监听哪个端口并获取其pid。