Несколько раз случалось такое, что мне не удавалось стандартными средствами перезапустить NGiNX на сервере. Просто игнорировались все команды, и хоть ты тресни. Оставалось только одно средство — «убить» процесс командой kill
, но для её запуска требуется знать PID процесса. И тут потребовалось перепробовать массу вариантов, как его узнать, пока я не наткнулся на полезную команду, которая есть в стандартном дистрибутиве Debian 9 lsof
, которая и спасла в итоге ситуацию.
Как с помощью команды lsof
выяснить процесс, который слушает нужный порт в Debian 9
Читать документацию по lsof
пока нет желания, поэтому сразу к делу. Для того, чтобы определить, какой процесс в linux занимает 80-й порт, требуется ввести команду:
lsof -i :80 | grep LISTEN
Для того, чтобы узнать программы, слушающие другие порты, вместо 80, нужно указать номер нужного порта. Например, для порта 8080 команда будет выглядеть так:
lsof -i :8080 | grep LISTEN
Как узнать, какая программа слушает порт 22 (ssh) с помощью команды lsof
В качестве примера того, как и в каком формате выдаёт данные команда lsof
, рассмотрим, что у нас в системе слушает ssh - порт 22:
root@server:~# lsof -i :22 | grep LISTEN
sshd 777 root 3u IPv4 16470 0t0 TCP *:ssh (LISTEN)
sshd 777 root 4u IPv6 16472 0t0 TCP *:ssh (LISTEN)
- название процесса
sshd
- PID процесса
777
- пользователь, под которым запущен процесс
root
Как остановить процесс, который слушает порт на сервере
Узнав PID процесса, никто не помещает его остановить командой kill
:
kill 777
Вместо 777 нужно ввести PID того, процесса, который требуется остановить (если больше ничего не помогает). Ну и для того, чтобы «убить» процесс наверняка, можно использовать опцию -9. Результат — всегда срабатывает:
kill -9 777
Но, лучше всё-таки, когда до kill дело не доходит и всё останавливается и запускается, в общем, реагирует по сценарию того процесса, которым требуется управлять.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)