Назад | Перейти на главную страницу

Проблема убийства процесса

Я пытаюсь запрограммировать серверное программное обеспечение, которое требует большого количества тестов на платформе 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

Как его убить.

kill -9 отправляет SIGKILL, который позволяет вам убить любой процесс, который не ожидает ввода-вывода.

Обычный kill просто отправляет SIGTERM, который просит только завершить процесс. В то время как SIGKILL сообщает ОС немедленно прекратить процесс.