最大のファイル記述子を持つプロセス - 詳細プロセスの詳細

最大のファイル記述子を持つプロセス - 詳細プロセスの詳細

最大のファイル記述子を持つプロセスを見つけようとしています。
このソリューションを見つけました。ここ

lsof -Fpcn | awk '
 /^p/ { pid=substr($0,2) }
 /^c/ { cmd=substr($0,2) }
 /^n/ { fd[cmd"["pid"]"]++ }
 END  { for (cc in fd) printf("%-20s %i\n",cc,fd[cc]) } ' | sort -n -k 2

このコマンドセットはうまく機能します。
記述子が15未満のプロセスをフィルタリングできます。
プロセスの詳細を指定したいので、
psからプロセスに関する情報を抽出したいと思います。たとえば、次のようになります。

  ps -ef  | grep 30394

次のようにフィルタリングできます。

 END  {
           for (cc in fd) {
                 if(fd[cc] > 15){
                         printf("%-20s %i\n",cc,fd[cc])
                         }
                 }

      } ' | sort -n -k 2

しかし、プロセス情報を取得する方法がわかりません。

ps -efを次のようにマージしようとすると:

 printf("%-20s %i    process details: %s  \n",cc,fd[cc] , "$(ps -ef | grep fd[cc])" ) ;

次のように印刷されます。

lsof[7626]           17    process details: $(ps -ef | grep fd[cc])

ベストアンサー1

おすすめ記事