我使用的是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”
答案 0 :(得分:2)
lsof
只会显示实际绑定到端口的子进程。你需要杀死主进程。如果你使用--pid
选项启动gunicorn,你可以给它一个文件名来存储该进程的PID,然后你可以直接杀死它;如果没有,你可以从ps|grep gunicorn
获得它。
更好的是,正如elethan在评论中所建议的那样,使用系统中存在的任何进程管理器(systemd,upstart,supervisor或其他任何东西)将gunicorn设置为服务,并使用它来启动和停止它。