我正在尝试编写一个服务器软件,这涉及在 java / scala 平台上进行大量测试。每当我编译并执行代码时。它都会开始监听端口 80。有时当它挂起时我需要通过 Ctrl+C 来终止它。在这种情况下,ubuntu 不会释放端口。因此,为了运行该进程,我必须重新启动机器。
我在 ps aux 看到这个
root 1924 0.0 0.0 5796 1660 pts/0 T 05:44 0:00 sudo scala -
root 1925 0.2 1.5 491448 40796 pts/0 Tl 05:44 0:03 java -Xmx256M -Xms16M
因此进程 1924 和 1925。我对这两个进程都执行了 sudo kill。但过了很长时间后,它们仍然持续存在。
sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000
Scanning localhost (127.0.0.1) [65000 ports]
Discovered open port 80/tcp on 127.0.0.1
这意味着它仍然在那里!
sudo netstat --tcp --udp --listening --program
tcp6 0 0 [::]:www [::]:* LISTEN 1925/java
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN 1185/cupsd
这意味着它是 1925 - java
如何杀死它。
答案1
kill -9
发送 SIGKILL,允许您终止任何未等待 IO 的进程。
常规信号kill
只是发送 SIGTERM,要求进程退出。而 SIGKILL 则告诉操作系统立即终止进程。