У меня есть приложение, которое выплевывает время, когда оно запрашивается от клиента. У меня нет разрешений на использование порта 13, поэтому я поместил его в порт с действительно высоким номером. Теперь я не могу убить этот порт и не могу использовать порт ни для чего другого. Как мне найти демона, чтобы убить его (ps -ef не показывает его) и закрыть порт? Я не могу использовать «lsof», потому что я использую Redhat.

1 ответ1

1

Теперь я не могу убить этот порт и не могу использовать порт ни для чего другого. Как мне найти демона, чтобы убить его (ps -ef не показывает его) и закрыть порт? Я не могу использовать lsof потому что я использую Redhat.

Другие указали на одну из ошибок в приведенном выше. Вторая ошибка в том, что нельзя "убить" порты. Порты не являются процессами. Третья ошибка - предположение, что у вас есть какой-то секретный магический процесс, который ps -e не покажет вам. Если в списке нет процессов, за исключением некоторых неясных угловых случаев , процесс отсутствует. Четвертая ошибка, по иронии судьбы, возможно, самая главная, предполагает, что соединение с портом все еще открыто.

Гораздо более обыденным объяснением, которое соответствует описанному поведению, не требуя магически невидимых процессов, является то, что процесс завершился, но ничто еще не может привязаться к порту, потому что соединение TCP все еще находится в TIME_WAIT . Опция -o netstat - это ваш друг. Так же как и опция -p .

Кстати, SuperUser - не то место, где нужно спрашивать, как пишут такие демоны. И StackOverflow, то есть, решает этот и связанные вопросы снова и снова.

дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .