
Я пытаюсь запрограммировать серверное ПО, которое включает в себя много тестирования на платформе 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 --program
tcp6 0 0 [::]:www [::]:* LISTEN 1925/java
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN 1185/cupsd
Это значит, что сейчас 1925 год - java
Как его убить.
решение1
kill -9
отправляет сигнал SIGKILL, который позволяет завершить любой процесс, не ожидающий ввода-вывода.
Регулярный kill
просто отправляет SIGTERM, который только просит процесс завершиться. В то время как SIGKILL сообщает ОС о необходимости немедленно завершить процесс.