web-dev-qa-db-ja.com

Googleを終了Chrome端末から

google-chromeを使用する以外に、ターミナルからkillall google-chromeを終了させる方法はありますか?
スクリプトを終了せずにスクリプトから閉じることができるようにしたいと思います。

29
slybloty

おそらく wmctrl が役立つかもしれません。 -cウィンドウを正常に閉じるオプション:

wmctrl -c chrome

文字列chromeは、ウィンドウタイトルと照合されます。一部のメッセージがポップアップ表示された場合(複数のタブが開いている場合など)、ウィンドウが閉じない場合があることに注意してください。

13
Baldrick

このコマンドは、すべてのウィンドウマネージャでchromeプロセスツリーを正常に終了します。

pkill --oldest chrome

またはご希望の場合:

/usr/bin/pkill --oldest --signal TERM -f chrome    

詳細:

  • 優雅な意味:「Google Chromeが正しくシャットダウンされませんでした。修復するには...」次回の表示を回避するchrome開始
  • chromeブラウザ(バージョン39.0.2171.95など)はSIGTERMをトラップして正常に処理します
  • chromeのプロセスツリーのルートである単一のプロセスに信号を送るため、--oldest
  • SIGTERMはシグナル15と同じなので、--signal TERMとするか、またはSIGTERMがデフォルトのシグナルなので省略します。
  • wmctrlはUnityや他の一部で動作しますが、すべてのウィンドウマネージャーでは動作しません
  • wmctrl -cは一度に1つのウィンドウを閉じるので、すべてのchromeウィンドウを閉じるには、while wmctrl -c 'Google Chrome'; do sleep 0.2; doneのようなものが必要になります。
29
Keith Cascio

オン 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"
1
hanxue

これは私にとってはうまくいきます:

killall --quiet --signal 15 -- chrome

コードで読みやすくするために、かなり冗長なコマンドを使用していることに注意してください。もちろん、次のコマンドを発行することもできます。

killall -q -15 chrome
1
Fleshgrinder

試してください:

kill -3 <pid_of_chrome>

これにより、「QUIT」信号がChromeに送信されます。ウィンドウマネージャーによっては、閉じるように要求されたときに通常送信される信号になります。

0
Blackle Mori