web-dev-qa-db-ja.com

まだ使用されているがプロセスにバインドされていないポートを解放するにはどうすればよいですか?

複数のプロセスを生成するPythonアプリケーションを実行しています。ポート56008を使用してクライアント要求をリッスンします。閉じた後も、使用したポートがまだ「使用中」である場合があります。 python実行されているように見えますが、killを使用してそれらを強制終了しようとしても影響はないようです。

アプリケーションを再起動できるように、手動で解放するにはどうすればよいですか?

より詳しい情報:

ps -C pythonの出力

  PID TTY          TIME CMD
30118 pts/1    00:00:00 python
30131 pts/1    00:00:00 python

*フォーマットは合計で約30行です[pid] pts/1 00:00:00 python

netstat -tulpの出力(関連行のみ):

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:56008                 *:*                     LISTEN      -
2
Trindaz

これはトリックをしました

Sudo kill -9 `ps -C python | grep python | grep -v grep | awk '{print $1}'`
3
Trindaz

アプリケーションがどのように終了するかを適切にコーディングしてみてください(たとえば、すべての子を強制終了する、ネットワークソケットを閉じる)

0
manjiki