特定のPIDを持つプロセスが外部コマンドを使用せずにポートを開いたかどうかを知る必要があります。次に、/proc
ファイルシステムを使用する必要があります。/proc/$PID/net/tcp
たとえば、ファイルを読み取って、プロセスによって開かれたTCPポートに関する情報を取得できます。ただし、マルチスレッドプロセスでは、/proc/$PID/task/$TID
ディレクトリにはnet/tcp
ファイルも含まれます。私の質問は:
すべてのスレッドnet/tcp
ファイルを調べる必要がありますか、それともスレッドによって開かれたポートがプロセスnet/tcp
ファイルに書き込まれますか?
fd
各スレッドのすべてのディレクトリを調べる必要がありますか?または、/proc/pid/fd
ディレクトリはディレクトリを「継承」し/proc/pid/task/tid/fd
ますか?