Zabijasz wszystkie wystąpienia Chrome w wierszu poleceń?

37

W niektórych przypadkach zabicie jednej karty / procesu nie powoduje tego i muszę całkowicie zamknąć Chrome. Ponieważ Chrome ma wiele procesów, jak mogę je wszystkie zamknąć jednocześnie?

Wiem to...

pgrep chromezwraca wszystkie stawki. Jaka jest sztuczka, która pozwoliłaby mi zamknąć je wszystkie, karmiąc je innym poleceniem lub scalając je do pliku CSV?

meder omuraliev
źródło
3
Ponieważ są tu co najmniej trzy odpowiedzi, które niepotrzebnie tak robią kill -9, oto trzy referencje omawiające powody, dla których powinien być twój ostatni wybór: Kiedy powinienem użyć kill -9 , kill -9 i Bezużyteczne użycie kill -9 .
Wstrzymano do odwołania.
1
Podobne pytanie w witrynie U / Linux: unix.stackexchange.com/q/34101/6272
AlikElzin-kilaka
Najczystszą odpowiedzią jest pytanie z innych stron, jak zauważono poniżej, ponieważ pokazuje, który proces zabić według najstarszego znacznika czasu:pkill --oldest chrome
nealmcb

Odpowiedzi:

55

Spróbuj użyć pkill (1) .

pkill chrome

jschmier
źródło
po prostu pamiętaj, że pkill może nie być dostępny we wszystkich systemach, ale jeśli masz pgrep, istnieje więcej niż prawdopodobne, że pkill również istnieje.
kSiR
2
dla mnie rozróżniano pkill Chrome
wielkość
1
Widelec nie działał dla mnie. Użycie pkill chromeNie zamknęło głównego procesu chrome. Zamknął wszystkie wewnętrzne procesy powodujące awarie wszystkich rozszerzeń. Powodowało to również, że niektóre okna nie otwierały się przy następnym uruchomieniu, powodując utratę stanu :(
AlikElzin-kilaka
2
@ AlikElzin-kilaka - Możesz spróbować jawnie zabić najstarszy proces Chrome przy pomocy czegoś takiegopkill --oldest chrome
rinogo
13
ps aux | grep chrome | awk ' { print $2 } ' | xargs kill -9

lub

pgrep chrome | xargs kill -9

lub

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

Ten ostatni jest bardziej „elegancki”, ponieważ nie odbierze rzeczywistego pid dla „grep chrome” na liście ps

:-)

kSiR
źródło
Czy istnieje jakikolwiek powód do użycia ps ... | zamiast pgrep, nawet jeśli nie chcesz go używać pkill?
Cascabel
3
Zawsze grzecznie jest zacząć od SIGTERM przed przejściem do SIGKILL.
Cascabel
nie do końca, jedynym powodem, dla którego wyrzuciłem opcję ps, jest to, że wiele moich systemów ma nagie kości, co oznacza, że ​​nie mamy takich rzeczy jak pkill pgrep
kSiR
Zgadzam się, ale jeden właśnie poprosił o zabicie: -O s / -9 / -1 / g
kSiR
6

Niektóre systemy mogą mieć również przydatne programy, takie jak killalli pidof(które są faktycznie dostarczane przez System V killall5):

killall chrome
kill -9 `pidof chrome`

Oba powinny osiągnąć to, o co prosisz.

John Ledbetter
źródło
1
Nie powinieneś używać, -9chyba że w ostateczności. Zrób kill PIDpierwszy.
Wstrzymano do odwołania.
killallobsługuje także niewrażliwość na wielkość liter, na przykład: killall --ignore-case ChRomEzabiłby wszystkie procesy Chrome. Opcję --ignore-casemożna również skrócić do -I. Niestety pkillnie obsługuje rozróżniania wielkości liter - przynajmniej na systemach Linux, których wypróbowałem (ale obsługuje -irozróżnianie wielkości liter w systemie MacOS).
nonbeing
1

Naprawdę powinieneś używać pkilltak, jak sugeruje jschmier, ale jeśli nalegasz na pgrep, po prostu użyj podstawiania poleceń:

kill $(pgrep chrome)
Cascabel
źródło
would'nt kill pgrep chrome`` również praca;)
kSiR
@kSiR: [miesiąc później] tak, ale $(...)jest to świetny nawyk, aby się w nie zagnieżdżać, aby móc zagnieżdżać się w razie potrzeby i przełączać się między pasującymi ogranicznikami w edytorze.
Cascabel
1

Najłatwiejszym poleceniem jest to:

sudo killall chrome

To, z uprawnieniami administracyjnymi, zabije wszystkie procesy, które zawierają chromew ich nazwie.

Zobacz man killallwięcej informacji ...

joksancpen
źródło
3
Czy mógłbyś dodać trochę wyjaśnienia na temat tego, jak działa twoja odpowiedź?
nhinkle
0

Możesz także spróbować czegoś takiego:

ps -C chrome |cut -f 1 -d' ' | xargs kill
Nathan Fellman
źródło
Nie powinieneś używać -9, chyba że w ostateczności. Zrób kill PIDpierwszy.
Wstrzymano do odwołania.
Słuszna uwaga. Zaktualizowałem swoją odpowiedź.
Nathan Fellman
Nie potrzeba kolejnej rury cut; psmoże to zrobić sam: ps -o pid= -C chrome | xargs kill.
musiphil
I jest to dobry zwyczaj, aby umieścić -rw xargs: ps -o pid= -C chrome | xargs -r kill.
musiphil
@musiphil: co to jest -r?
Nathan Fellman
0

W Ubuntu działało to dla mnie:

pkill chrom

użytkownik1685993
źródło