无法杀死gunicorn进程

Dav*_*vid 2 unix django digital-ocean ubuntu-14.04

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

sudo lsof -i:9000
Run Code Online (Sandbox Code Playgroud)

我得到不同的结果,例如

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

或者

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)
Run Code Online (Sandbox Code Playgroud)

即使我在上次尝试后立即运行 lsof,gunicorn 进程的数量也从 0 到 4 不等。简单地运行

pkill gunicorn
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*man 7

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

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