google-chrome
を使用する以外に、ターミナルからkillall google-chrome
を終了させる方法はありますか?
スクリプトを終了せずにスクリプトから閉じることができるようにしたいと思います。
おそらく wmctrl
が役立つかもしれません。 -c
ウィンドウを正常に閉じるオプション:
wmctrl -c chrome
文字列chrome
は、ウィンドウタイトルと照合されます。一部のメッセージがポップアップ表示された場合(複数のタブが開いている場合など)、ウィンドウが閉じない場合があることに注意してください。
このコマンドは、すべてのウィンドウマネージャでchromeプロセスツリーを正常に終了します。
pkill --oldest chrome
またはご希望の場合:
/usr/bin/pkill --oldest --signal TERM -f chrome
詳細:
SIGTERM
をトラップして正常に処理します--oldest
SIGTERM
はシグナル15
と同じなので、--signal TERM
とするか、またはSIGTERM
がデフォルトのシグナルなので省略します。wmctrl
はUnityや他の一部で動作しますが、すべてのウィンドウマネージャーでは動作しませんwmctrl -c
は一度に1つのウィンドウを閉じるので、すべてのchromeウィンドウを閉じるには、while wmctrl -c 'Google Chrome'; do sleep 0.2; done
のようなものが必要になります。オン Mac OS X
、代わりにこれを使用してください
pkill -a -i "Google Chrome"
これは、Google Chromeプロセスを探し、その親プロセスもすべて強制終了することです。
Pkillマニュアルから
-a Include process ancestors in the match list. By default, the
current pgrep or pkill process and all of its ancestors are
excluded (unless -v is used).
-i Ignore case distinctions in both the process table and the
supplied pattern.
@ keith-cascioの answer に従って、代わりに最も古いプロセスを強制終了することができます。これは私にはうまくいきませんでした。
pkill -o -i "Google Chrome"
これは私にとってはうまくいきます:
killall --quiet --signal 15 -- chrome
コードで読みやすくするために、かなり冗長なコマンドを使用していることに注意してください。もちろん、次のコマンドを発行することもできます。
killall -q -15 chrome
試してください:
kill -3 <pid_of_chrome>
これにより、「QUIT」信号がChromeに送信されます。ウィンドウマネージャーによっては、閉じるように要求されたときに通常送信される信号になります。