次のコマンドを使用して、各ウィンドウのプロセスIDを一覧表示できます。
wmctrl -lp
各ウィンドウを表示するコマンドがありますrunning command
(htopに「コマンド」列があるのと同じ)。
そうでなければ、最終的にこれを達成するためにどのようにコマンドを結合しますか?
ベストアンサー1
wmctrl -lp
これにより、出力のpidが見つかった場合はそのコマンドに置き換えられます。
wmctrl -lp | awk '{ pid=$3; cmd="ps -o comm= " pid; while ((cmd | getline command) > 0) { sub(" " pid " ", " " command " ") }; close(cmd) } 1'
これは明らかにリモートプロセスを表示するウィンドウでは機能しません。場合によっては、サンドボックスプロセスに対応するウィンドウに奇妙な結果が表示されることがあります(例えばフラットパック)。
AWK スクリプトは各行を読み取り、pid を抽出し、対応するps -o comm=
コマンドを実行します。見つかった場合は、対応するpid文字列をコマンドで置き換えます。