Port nasłuchuje, ale nie należy do nikogo

0

Przedmowa (pomiń prawdziwy problem): Mam aplikację, która nasłuchuje na porcie 843. Ten proces jest uruchamiany jako root. Czasami zabicie procesu (za pomocą ^ C) powoduje, że zwisa on przez długi czas (na zawsze?). Niecierpliwie zabijam to kill -9. Problem polega na tym, że port 843 nadal nasłuchuje, mimo że nie ma tam żadnej aplikacji.

Spojrzenie na nie lsof -ipokazuje mi procesów nasłuchujących 843, nawet gdy są uruchamiane jako root. netstat -aJednak patrząc na to pokazuje, że nasłuchuje, a nawet niektóre połączenia, które nie zostały zerwane poprawnie:

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

Podobne pytanie zaleca przede wszystkim, aby nie wdawać się w tę sytuację. To dobra rada, ale trochę trudna, ponieważ nie jest to moja aplikacja. Co więcej, byłoby miło się z tego wydostać.

W jakikolwiek sposób mogę wyjść z tego bałaganu bez ponownego uruchamiania? Czy fakt, że uruchomiłem go jako root, jest ważny? (Potrzebuję tylko roota, aby słuchać portów o niskim numerze, dla których nie znalazłem sposobu bez instalacji oprogramowania takiego jak authbind).

Johannes Hoff
źródło
czy mógłbyś opublikować wynikinetstat -lntp|grep 843
Serge
To jest na OSX (BSD), więc -lntpprawdopodobnie oznacza coś innego niż chcesz. W szczególności -pbierze argument (protokół). Jaki byłby wynik?
Johannes Hoff
Wygląda na to, że -pw OSX nie ma odpowiednika : \
Johannes Hoff