Вбивати всі екземпляри Chrome у командному рядку?


37

У деяких випадках вбивство однієї вкладки / процесу не робить цього, і мені потрібно повністю закрити Chrome. Оскільки в Chrome є кілька процесів, як я можу закрити їх усі одразу?

Я знаю це...

pgrep chromeповертає всі піди. Що таке хитрість, яка дозволила б мені закрити їх, подавши їх до іншої команди або об'єднавши їх у файл CSV чи щось таке?


3
Оскільки тут є щонайменше три відповіді, які непотрібно робити kill -9, ось три посилання, які обговорюють причини, які повинні бути вашим останнім вибором: Коли я повинен використовувати kill -9 , kill -9 та Useless use 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не закрило основний процес хромування. Це закрило всі внутрішні процеси, викликаючи збої на всіх розширеннях. Крім того, це призвело до того, що деякі вікна не відкриються під час наступного запуску, спричиняючи втрату стану :(
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

Останній є більш "елегантним", оскільки він не підбере фактичний під для "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)

would'nt 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.