Убить все экземпляры Chrome в командной строке?


37

В некоторых случаях уничтожение одной вкладки / процесса не делает этого, и мне нужно полностью закрыть Chrome. Поскольку в Chrome несколько процессов, как я могу закрыть их все одновременно?

Я знаю это...

pgrep chromeвозвращает все пиды. Что за хитрость позволила бы мне закрыть все из них, передав их другой команде или объединив их в файл CSV или что-то в этом роде?


3
Так как здесь есть по крайней мере три ответа, которые бесполезно делать kill -9, вот три ссылки, обсуждающие причины, которые должны быть вашим последним выбором: когда я должен использовать kill -9 , kill -9 и Бесполезное использование kill -9 .
Приостановлено до дальнейшего уведомления.

1
Аналогичный вопрос на сайте U / Linux: unix.stackexchange.com/q/34101/6272
AlikElzin-kilaka

Самым чистым ответом на самом деле является ответ на вопросы на других сайтах, как указано ниже, так как он определяет, какой процесс нужно убить с помощью самой старой отметки времени:pkill --oldest chrome
nealmcb

Ответы:


55

Попробуйте использовать pkill (1) .

pkill chrome


просто знайте, что pkill может быть не на всех системах, но если у вас есть pgrep, более вероятно, что pkill также существует.
kSiR

2
для меня это было чувствительно к регистру, мне нужно было написатьpkill Chrome
Лирон Яхдав

1
Не работает вилка для меня. Использование pkill chromeне закрыло основной процесс Chrome. Он закрыл все внутренние процессы, вызывающие сбои на всех расширениях. Кроме того, это привело к тому, что некоторые окна не открылись при следующем запуске, что привело к потере состояния :(
AlikElzin-kilaka

2
@ AlikElzin-kilaka - Вы можете попытаться явно убить самый старый процесс Chrome чем-то вродеpkill --oldest chrome
rinogo

13
ps aux | grep chrome | awk ' { print $2 } ' | xargs kill -9

или

pgrep chrome | xargs kill -9

или

ps aux | awk '/chrome/ { print $2 } ' | xargs kill -9

Последний является более «элегантным», так как он не подберет фактический pid для «grep chrome» внутри своего списка ps

:-)


Есть ли причина использовать ps ... | вместо того pgrep, чтобы даже предположить, что вы не хотите использовать pkill?
Каскабель

3
Также всегда вежливо начинать с SIGTERM, прежде чем перейти к SIGKILL.
Каскабель

не совсем, единственная причина, по которой я выкинул опцию ps, из-за того, что многие мои системы являются голыми, то есть у нас нет таких вещей, как pkill pgrep
kSiR

Я согласен, но одного просто попросили убить: -O s / -9 / -1 / g
kSiR

6

Некоторые системы могут также иметь полезные программы, такие как killallи pidof(которые фактически предоставляются System V killall5):

killall chrome
kill -9 `pidof chrome`

Оба они должны выполнить то, что вы просите.


1
Вы не должны использовать, -9кроме как в крайнем случае. Делай kill PIDпервым.
Приостановлено до дальнейшего уведомления.

killallтакже поддерживает регистронезависимость, например: killall --ignore-case ChRomEуничтожит все процессы Chrome. Опция --ignore-caseтакже может быть сокращена до -I. К сожалению, pkillне поддерживает регистронезависимость - по крайней мере, в системах Linux, которые я пробовал (но он поддерживает -iрегистронезависимость в MacOS).
небытие

1

Вы действительно должны просто использовать, pkillкак предлагает jschmier, но если вы настаиваете на pgrep, просто используйте подстановку команд:

kill $(pgrep chrome)

не будет kill pgrep chrome`` тоже сработает;)
kSiR

@kSiR: [с опозданием на месяц] да, но $(...)это отличная привычка, поэтому вы можете вкладывать, когда вам нужно, и переключаться между соответствующими разделителями в вашем редакторе.
Каскабель

1

Самая простая команда это:

sudo killall chrome

Это с правами администратора уничтожит все процессы, которые содержатся chromeв их имени.

Смотрите man killallдля получения дополнительной информации ...


3
Не могли бы вы немного объяснить, как работает ваш ответ?
nhinkle


0

Вы также можете попробовать что-то вроде этого:

ps -C chrome |cut -f 1 -d' ' | xargs kill

Вы не должны использовать -9, кроме как в крайнем случае. Делай kill PIDпервым.
Приостановлено до дальнейшего уведомления.

хорошая точка зрения. Я обновил свой ответ.
Натан Феллман

Не нужно проходить через другую трубу cut; psможет сделать это сам ps -o pid= -C chrome | xargs kill.
Musiphil

И это хорошая привычка ставить -rв xargs: ps -o pid= -C chrome | xargs -r kill.
Musiphil

@musiphil: что такое -r?
Натан Феллман

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.