Tuer toutes les instances de Chrome sur la ligne de commande?


37

Dans certains cas, tuer un seul onglet / processus ne le fait pas et je dois fermer complètement Chrome. Étant donné que Chrome a plusieurs processus, comment puis-je les fermer tous en même temps?

Je le sais...

pgrep chromerenvoie tous les pids. Quelle astuce me permettrait de les fermer tous en les alimentant vers une autre commande ou en les fusionnant dans un fichier CSV ou quelque chose?


3
Puisqu'il y a au moins trois réponses ici qui le font inutilement kill -9, voici trois références discutant des raisons qui devraient être votre dernier choix: quand dois-je utiliser kill -9 , kill -9 et utilisation inutile de kill -9 .
pause jusqu'à nouvel ordre.

1
Question similaire sur le site U / Linux: unix.stackexchange.com/q/34101/6272
AlikElzin-kilaka

La réponse la plus propre est vraiment celle des questions sur d'autres sites, comme indiqué ci-dessous, car elle détermine le processus à tuer par le plus ancien horodatage:pkill --oldest chrome
nealmcb

Réponses:


55

Essayez d'utiliser pkill (1) .

pkill chrome


sachez simplement que pkill n'est peut-être pas sur tous les systèmes, mais si vous avez pgrep, il est plus que probable que pkill existe également.
kSiR

2
pour moi, c'était sensible à la casse, je devais écrirepkill Chrome
Liron Yahdav

1
Ça n'a pas marché pour moi. pkill chromeSon utilisation n'a pas fermé le processus Chrome principal. Il a fermé tous les processus internes provoquant des plantages sur toutes les extensions. De plus, certaines fenêtres ne se sont pas ouvertes au prochain lancement, entraînant une perte d'état :(
AlikElzin-kilaka

2
@ AlikElzin-kilaka - Vous pourriez essayer de tuer explicitement le plus ancien processus Chrome avec quelque chose commepkill --oldest chrome
rinogo

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

ou

pgrep chrome | xargs kill -9

ou

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

Ce dernier est plus "élégant" car il ne récupérera pas le pid réel pour "grep chrome" à l'intérieur de sa liste de ps

:-)


Y a-t-il une raison d'utiliser ps ... | au lieu de pgrep, même en supposant que vous ne voulez pas utiliser pkill?
Cascabel

3
Il est également toujours poli de commencer avec SIGTERM avant de passer à SIGKILL.
Cascabel

pas vraiment, la seule raison pour laquelle j'ai lancé l'option ps est due à beaucoup de mes systèmes sont des os nus, ce qui signifie que nous n'avons pas des choses comme pkill pgrep
kSiR

Je suis d'accord, mais on vient de demander de tuer: -O s / -9 / -1 / g
kSiR

6

Certains systèmes peuvent également avoir des programmes utiles tels que killallet pidof(qui est en fait fourni par le système V killall5):

killall chrome
kill -9 `pidof chrome`

Ces deux devraient accomplir ce que vous demandez.


1
Vous ne devriez pas utiliser -9sauf en dernier recours. Faites d' kill PIDabord.
pause jusqu'à nouvel ordre.

killallprend également en charge l'insensibilité à la casse, par exemple: killall --ignore-case ChRomEtuerait tous les processus Chrome. L'option --ignore-casepeut également être raccourcie -I. Malheureusement, pkillne prend pas en charge l'insensibilité à la casse - du moins sur les systèmes Linux que j'ai essayés (mais il prend en charge l' -iinsensibilité à la casse sur MacOS).
nonbeing

1

Vous devriez vraiment simplement utiliser pkillcomme le suggère jschmier, mais si vous insistez sur pgrep, utilisez simplement la substitution de commande:

kill $(pgrep chrome)

ne fonctionnerait kill pas pgrep chrome`` fonctionne également;)
kSiR

@kSiR: [un mois en retard] oui, mais $(...)c'est une bonne habitude à prendre pour pouvoir imbriquer quand vous en avez besoin et basculer entre les délimiteurs correspondants dans votre éditeur.
Cascabel

1

La commande la plus simple est celle-ci:

sudo killall chrome

Avec les autorisations administratives, cela supprimera tous les processus qui contiennent chromeleur nom.

Voir man killallpour plus d'informations ...


3
Pourriez-vous ajouter quelques explications sur le fonctionnement de votre réponse?
nhinkle


0

Vous pouvez également essayer quelque chose comme ceci:

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

Vous ne devez pas utiliser -9 sauf en dernier recours. Faites d' kill PIDabord.
pause jusqu'à nouvel ordre.

bon point. J'ai mis à jour ma réponse.
Nathan Fellman

Pas besoin d'un autre tuyau à travers cut; pspeut le faire lui - même: ps -o pid= -C chrome | xargs kill.
musiphil

Et c'est une bonne habitude de mettre -ren xargs: ps -o pid= -C chrome | xargs -r kill.
musiphil

@musiphil: qu'est-ce que -r?
Nathan Fellman

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.