无法杀死gunicorn进程

时间:2016-09-02 15:48:01

标签: django unix ubuntu-14.04 digital-ocean

我使用的是digitalocean ubuntu 14.04 vps。我跑的时候

sudo lsof -i:9000

我得到了不同的结果,例如

COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
gunicorn 23148 django    5u  IPv4  51019      0t0  TCP localhost:9000 (LISTEN)

COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
gunicorn 23174 django    5u  IPv4  51179      0t0  TCP localhost:9000 (LISTEN)
gunicorn 23175 django    5u  IPv4  51179      0t0  TCP localhost:9000 (LISTEN)

其中gunicorn进程的数量从0到4不等,即使我在上一次尝试之后立即运行lsof。只需运行

pkill gunicorn

失败,我相信因为PID不断变化(如上所示)。如何永久终止这些进程?如果它有所不同,我是用户“root”,并且没有登录用户“django”

1 个答案:

答案 0 :(得分:2)

lsof只会显示实际绑定到端口的子进程。你需要杀死主进程。如果你使用--pid选项启动gunicorn,你可以给它一个文件名来存储该进程的PID,然后你可以直接杀死它;如果没有,你可以从ps|grep gunicorn获得它。

更好的是,正如elethan在评论中所建议的那样,使用系统中存在的任何进程管理器(systemd,upstart,supervisor或其他任何东西)将gunicorn设置为服务,并使用它来启动和停止它。