Предисловие (пропустите для реальной проблемы): у меня есть приложение, которое прослушивает порт 843. Этот процесс запускается от имени пользователя root. Иногда убийство процесса (с помощью ^ C) оставляет его на долгое время (навсегда?). Будучи нетерпеливым, я убиваю его kill -9 . Проблема сейчас в том, что порт 843 все еще слушает, хотя там нет приложения.

Глядя на lsof -i я не вижу процессов, слушающих 843, даже при запуске от имени пользователя root. Однако просмотр netstat -a показывает, что он прослушивает, и даже некоторые соединения были разорваны неправильно:

Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp6       0      0  localhost.843          localhost.60927        CLOSE_WAIT
tcp6     386      0  localhost.843          localhost.60926        CLOSE_WAIT
tcp6       0      0  localhost.843          localhost.60925        CLOSE_WAIT
tcp6     386      0  localhost.843          localhost.60924        CLOSE_WAIT
tcp46      0      0  *.843                  *.*                    LISTEN
tcp4       0      0  *.843                  *.*                    LISTEN

Подобный вопрос рекомендует, чтобы я не попал в эту ситуацию в первую очередь. Это хороший совет, но немного сложный, поскольку это не мое заявление. Кроме того, было бы неплохо выйти из этого независимо.

Как я могу выйти из этого беспорядка без перезагрузки? Важен ли тот факт, что я управлял им как root? (Мне нужен только root для прослушивания портов с низким номером, для которых я не нашел пути без установки программного обеспечения, такого как authbind).

0