web-dev-qa-db-fra.com

Comment tuer des onglets sans les fermer ni tuer le navigateur lui-même en chrome 58

Dans les versions antérieures à 58, un killall chromium-browse[r] suffisait pour supprimer tous les onglets tout en laissant le navigateur chrome intact. Comment ce comportement peut-il être répliqué pour la nouvelle version du navigateur?

Le meilleur que j'ai pu gérer est le suivant qui supprimera également des extensions lorsque vous le ferez:

pgrep -f 'chromium-browser --type=renderer' | while read pid; do kill $pid; done

Editer pour le contexte: J'ai la quantité de mémoire que le chrome peut utiliser limitée par cgroups. Lorsque cette quantité est dépassée, chrome bloque l'échange de mémoire depuis et vers le disque. Chromium ne répond pas aux entrées de l'utilisateur lorsqu'il se trouve dans cet état. Le contrôle par onglet basé sur un navigateur n'est donc pas une option.

Editer pour plus de clarté: Tuer un onglet n'implique pas sa fermeture. Ce que je veux, c'est que l'onglet lui-même reste, mais que le processus de rendu meure. Ceci est généralement indiqué en affichant un message "Quelque chose s'est mal passé" au lieu du contenu normal d'un onglet.

1
Doe

Bon alors après vos modifications; J'ai joué avec la commande que vous avez donnée. Vous avez dit que cela détruit également les extensions, donc pour les exclure, vous pouvez utiliser grep -v "extension", mais vous prenez ensuite en entrée la commande de processus complète.

Quoi qu'il en soit. Sélectionnez d'abord le nom du processus

pgrep -f -a 'chrome'

J'utilise chrome, vous pouvez mettre chromium-browser à la place. Le drapeau -a est ici important.

alors fais

| grep 'type=renderer'

pour obtenir tous les rendus. Alors fais

| grep -v "extension"

pour exclure les extensions, alors nous devons faire

| egrep -o '^[0-9]{0,}'

pour obtenir uniquement le numéro de processus (car nous avons dû utiliser l'indicateur -a qui donne des données supplémentaires dans la chaîne).

Nourrir cela dans votre boucle

| while read pid; do kill $pid; done

Et cela devrait tuer les moteurs de rendu sans extensions

Alors finalement, voici le problème pour vous:

pgrep -f -a 'chromium-browser' | grep 'type=renderer' | grep -v "extension" | egrep -o '^[0-9]{0,}' | while read pid; do kill $pid; done

J'espère que je n'ai pas commis d'erreur

0
Mina Michael

Ctrl + Shift + w va tuer tous les onglets de la fenêtre chrome actuellement sélectionnée sans affecter le navigateur lui-même.

1
Mina Michael