Выйдите из Google Chrome через терминал.

Выйдите из Google Chrome через терминал.

Есть ли способ выйти google-chromeиз терминала, помимо использования killall google-chrome?
Я хотел бы иметь возможность закрыть его из скрипта, не убивая его.

решение1

Эта команда корректно завершает работу дерева процессов 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закрывает одно окно за раз, поэтому, чтобы закрыть все окна Chrome, вам понадобится что-то вродеwhile wmctrl -c 'Google Chrome'; do sleep 0.2; done

решение2

Возможноwmctrlможет быть полезным. Вы можете использовать -cопцию, которая изящно закрывает окно:

wmctrl -c chrome

Строка chromeсопоставляется с заголовками окон. Обратите внимание, что окно может не закрыться, если всплывает какое-либо сообщение (например, если открыто несколько вкладок).

решение3

Мне это подходит:

killall --quiet --signal 15 -- chrome

Обратите внимание, что я использую довольно многословную команду, чтобы она оставалась читаемой в коде. Конечно, вы также можете ввести:

killall -q -15 chrome

решение4

пытаться:

kill -3 <pid_of_chrome>

Это отправит Chrome сигнал «ВЫХОД», который, в зависимости от вашего оконного менеджера, будет соответствовать тому, который он обычно отправляет при запросе на закрытие.

Связанный контент