によって生成されたIDを前提wmctrl -l
として、ウィンドウIDにリンクされているプロセスを強制終了できるようにしたいと思います。
あなたはそれをどのように提案しますか?」
によって生成されたIDを前提wmctrl -l
として、ウィンドウIDにリンクされているプロセスを強制終了できるようにしたいと思います。
あなたはそれをどのように提案しますか?」
回答:
wmctrl -lp
PID を使用する場合は、3番目の列にあります。
使用できる特定のウィンドウIDに対して
kill $(wmctrl -lp | awk '/^WID/ {print $3}')
(WIDをウィンドウIDに置き換えます)
col3
。
wmctrl
実際には-p
、PIDをリストするための別のフラグがあります。
bash-4.3$ wmctrl -lp
0x0380000a 0 4410 eagle Desktop
0x04800006 0 4275 eagle XdndCollectionWindowImp
0x04800009 0 4275 eagle unity-launcher
0x0480000c 0 4275 eagle unity-panel
0x0480000f 0 4275 eagle unity-dash
0x04800010 0 4275 eagle Hud
これがわかったら、そのウィンドウのPIDを抽出して、 kill
wmctrl -lp | awk '/Window Title/{print $3}' | xargs kill
も使用できますxkill -id [id]
。xkillのユーティリティは、他の回答とは異なる動作します-ではなく、ウィンドウを閉じるか、直接プロセスを殺すよりも、それはウィンドウを作成したクライアントの接続を切断するためにXサーバに指示します。これは通常、リモートプロセスであってもプロセスを終了させる効果があります。
各アプローチの長所と短所:
wmctrl -c
「優雅に」ウィンドウを閉じます-まるでウィンドウマネージャーの閉じるボタンを自分でクリックしたかのように。アプリケーションがウィンドウを閉じたくない、またはフリーズしている場合、これによってプロセスが強制終了されることはなく、ウィンドウを閉じることさえできません。
pid from wmctrl -lp
を使用すると、プロセスが強制終了kill
されることが保証されていますが、プロセスが別のマシンで実行されている場合は、追加の作業が必要になるか、まったく機能しない可能性があります。
xkill
Xサーバーのクラッシュまたはネットワーク接続の喪失から回復できるように設計されている場合、はプロセスを終了しない場合がありますが、ほとんどのアプリケーションはこれらの状況下で単純にクラッシュします。いずれにしても、ウィンドウは消えてしまいます。また、リモートプロセスとローカルプロセスは同じように処理されます。
使用しますxkill
。xkill
ターミナルに入力して、必要なウィンドウをクリックするだけです。
xkill