プロセスを終了して再起動すると、エラーが発生する状況が発生しましたAddress already in use
。
sudo netstat -lntp
プロセスIDを取得するために実行中で、次の結果が返されます。
tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 475/valhalla_servic
だから私は走るsudo kill -9 475
このコマンドを実行した後、プロセスはnetstat
表示されなくなりますが、再起動しようとすると、「すでに使用されているアドレス」エラーが表示されます。私が何を間違っているのかわかりません。
答え1
何が間違っているのか分からないのですか?
良いニュース:何もありません。
TCPステートマシンにはタイムアウト条件があります。したがって、デフォルトではポートはしばらく保持されます。
一部のソフトウェアのユーザーとしてできることはあまりありません。任意のソフトウェアがすぐにポートを再バインドするのを防ぐのは最終的にセキュリティ機能です。
ソフトウェア開発者として、あなたはできますSO_LINGER
0に設定。ほとんどの場合、これは正しい方法ではありません。特に、所有プロセスを実際に終了する場合にはさらにそうです。