
私は、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 アグレッシブ -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 --プログラム
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 は OS にプロセスを直ちに終了するように指示します。