无法杀死 gunicorn 进程

Cannot kill gunicorn processes

我正在使用 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"

的登录名

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

获取

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