/proc/net/tcp は、ソケットのローカル アドレス、ポート、および inode 番号 (たとえば、0.0.0.0:5432 および 9289) を提供します。
上記の情報を考慮して、特定のプロセスの PID を見つけたいと思います。
/proc 内のすべての番号付きフォルダーを開き、"$ sudo ls -l /proc/*/fd/ 2>/dev/null | grep socket" のようなシェル コマンドを使用して、一致するソケット/i ノード番号についてシンボリック リンクをチェックすることができます。ただし、特定のシステムのプロセスの 5% 未満が TCP ソケットを開いているため、これは必要以上に計算コストがかかるようです。
特定のソケットを開いた PID を見つける最も効率的な方法は何ですか? 私は標準ライブラリを使用したいと思っており、現在 Python 3.2.3 で開発しています。
編集:以下の回答にコード サンプルが含まれるようになったため、質問からコード サンプルを削除しました。