lsofまたはnetstatにフォークすることなく、ネットワーク接続をPID(プロセスID)に結びつける方法はありますか?lsofやnetstatを使用せずにPIDにネットワーク接続する方法は?
現在、どのプロセスがどの接続に属しているかをポーリングするためにlsofが使用されています。しかし、lsofやnetstatは、忙しいホストではかなり高価になり、これらのツールにフォークする必要はありません。
/proc/$ pidと似た場所がありますが、この情報が見つかる場所はありますか?私はネットワーク接続が/ proc/netを調べることによって何を知っていますが、これをpidに結びつける方法を理解することはできません。/proc/$ pidには、ネットワークに関する情報はありません。
対象ホストは、Linux 2.4とSolaris 8~10です。可能であれば、Perlで解決できますが、C/C++を実行します。
その他の注意事項:
私はここでの目標を強調したいと思いPIDへのネットワーク接続を結びつけることです。どちらか一方を取得するのは簡単ですが、低コストで両者をまとめるのは難しいようです。これまでの回答をありがとう!
私はしばらく前には、netstatをちらっと見ました。私は、それがちょうど接続のキャッシュを構築する/ proc経由で耕うと確信しています。私は魔法がそこに起こっているとは思わない。 – Duck
@Duckの魔法は必要ありません:-)そして、彼は子プロセスでnetstatを実行したくないという点について指摘したので、コードをコピーするのは良い参考資料です。 – lothar