2012-10-09 183 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。