プロセスに開いているポートがあるかどうかを確認するには、「/proc」を読んでください。

プロセスに開いているポートがあるかどうかを確認するには、「/proc」を読んでください。

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

すべてのスレッドファイルを確認する必要がありますかnet/tcp、それともスレッドが開いたポートをnet/tcpプロセスファイルに書き込む必要がありますか?

ベストアンサー1

たとえば、/proc/$PID/net/tcp ファイルを読み込み、プロセスで開かれた TCP ポートに関する情報を取得できます。

このファイルは以下によって生成されませんでした。プロセス。同じネットワーク名前空間で実行されているプロセスに対して現在ネットワーク名前空間で開いているすべてのTCPポートのリスト。まったく同じコンテンツ/proc/net/tcp

プロセスで開かれたポートを見つけるには、ソケット記述子のリストを取得し、その記述子を/proc/<pid>/fdinodeフィールドと一致させる必要があります/proc/net/tcp

おすすめ記事