
Ich versuche, eine Serversoftware zu programmieren, die viele Tests auf der Java-/Scala-Plattform erfordert. Immer wenn ich den Code kompiliere und ausführe, beginnt er, auf Port 80 zu lauschen. Manchmal muss ich ihn mit Strg+C beenden, wenn er hängt. In diesem Fall gibt Ubuntu den Port nicht frei. Um den Prozess auszuführen, muss ich also die Maschine neu starten.
Ich sehe dies bei 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
Also Prozess 1924 und 1925. Ich habe bei beiden sudo kill ausgeführt. Aber dann bleiben sie auch nach langer Zeit bestehen.
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
Das bedeutet, es ist immer noch da!
sudo netstat --tcp --udp --listening --program
tcp6 0 0 [::]:www [::]:* LISTEN 1925/java
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN 1185/cupsd
Das heißt, es ist 1925 - Java
Wie man es tötet.
Antwort1
kill -9
sendet ein SIGKILL, mit dem Sie jeden Prozess beenden können, der nicht auf IO wartet.
Ein normaler Proxy kill
sendet lediglich SIGTERM, das den Prozess lediglich zum Beenden auffordert. SIGKILL hingegen weist das Betriebssystem an, den Prozess sofort zu beenden.