使用 Vista 计算机上的 Putty,我登录到开发服务器 (Ubuntu) 并启动 Django 测试服务器。我离开电脑一段时间(物理上),回来后发现 Putty 连接超时了。没什么大不了的,我只是重新登录服务器。
但是,当我尝试运行 Django 测试服务器时,它显示端口已在使用中。这意味着(我认为)第一个测试服务器实例仍在运行。
我该如何终止此进程?该进程是什么样子的?我做了一个ps aux
,感觉这是有问题的进程:
garfonzo 5719 0.3 0.0 0 0 ? D 08:58 1:07 [python]
因为我今天早上那个时候启动了服务器,而且 Django 是基于 Python 的。但是,执行此kill 5719
操作没有任何效果——进程没有被终止,我仍然无法启动测试服务器。
有任何想法吗!?
编辑- 更多细节:
我也运行了netstat -tulpn
,输出如下:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.1.130:8080 0.0.0.0:* LISTEN -
这不是很方便吗,我想知道进程 ID 的那个端口没有 PID!
答案1
首先,netstat
除非你拥有它们或 netstat 以 root 身份运行,否则不会显示进程 ID。尝试sudo netstat -tnpl
你可以使用 找出启动进程的命令行cat /proc/5719/cmdline
。如果这确实是你的 django 服务,并且它忽略了 SIGTERM 信号( 发送的默认信号kill
),请尝试使用以下方式向其发送 SIGKILLkill -KILL 5719