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?


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


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

:-)


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.


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)

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 ...


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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.