前書き (実際の問題については省略): ポート 843 を listen しているアプリケーションがあります。このプロセスは root として実行されます。プロセスを強制終了すると (^C を使用)、長時間 (永久に?) ハングしたままになることがあります。我慢できないので、 で強制終了しますkill -9
。問題は、そこにアプリケーションがないにもかかわらず、ポート 843 がまだ listen していることです。
を見るとlsof -i
、root として実行した場合でも、843 を listen しているプロセスがないことがわかります。netstat -a
ただし、 を見ると、 listen していることが示され、正しく切断されなかった接続もいくつかあります。
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 として実行したという事実は重要ですか? (低い番号のポートを listen するには root が必要なだけですが、authbind などのソフトウェアをインストールせずにその方法を見つけることができませんでした)。