Exemple d'utilisation:
Je lance Chromium avec quelques onglets ouverts et je décide que je n'ai pas besoin d'accéder à l'application pendant les 20 prochaines minutes. Afin d'économiser le temps de la batterie de l'ordinateur portable, je voudrais hiberner (geler) le chrome sans avoir à fermer l'application (la réouverture et le rechargement de tous les onglets nécessitent du temps que je voudrais économiser en l'hibernant).
killall
solution réellement très élégante. :)Réponses:
Vous pouvez utiliser la
killall
commande pour envoyer unSIGSTOP
signal à tous les processus correspondant à un nom donné pour les figer et les envoyer ultérieurementSIGCONT
la même manière pour les décongeler à nouveau.Trouvez d'abord le nom du processus en utilisant
pgrep -l SEARCH_PATTERN
:Notez qu'il supprimera les noms longs, donc il
r
manque. Mais ce n'est pas un problème car vous pouvez utiliser la Tabcomplétion pour entrer le nom du processus qui le terminera automatiquement.Ensuite, vous envoyez le
SIGSTOP
signal à tous les processus nomméschromium-browser
comme ceci:La fenêtre Chrome va griser comme si elle ne répondait plus. Eh bien, cela ne répondait vraiment pas, alors c'était à prévoir. Vous ne pouvez plus interagir avec la fenêtre d'aucune façon maintenant (à l'exception de la barre de menus et de la réduction, etc., qui est gérée par le gestionnaire de fenêtres et non par l'application elle-même). Mais les événements de clic sur les boutons, etc. sont toujours générés et ajoutés à la file d'attente d'événements de l'application, ils seront donc tous traités en même temps lorsque vous décongelerez à nouveau l'application!
Vous décongelez à nouveau l'application en exécutant simplement cette commande qui envoie le
SIGCONT
signal aux processus spécifiés:Parfois, le gel d'une application de cette manière peut entraîner son blocage. Assurez-vous donc que les éléments importants sont enregistrés avant de geler une application.
Dans de rares cas, même l'environnement de bureau / gestionnaire de fenêtres / quoi que ce soit d'autre peut également ne plus répondre. Dans ce cas, vous devez décongeler l'application gelée via un ATS:
Appuyez sur Ctrl+ Alt+ F1pour passer à TTY1. Il vous sera demandé de vous connecter, alors entrez votre nom d'utilisateur et votre mot de passe. Exécutez ensuite la commande pour décongeler l'application de la même manière que vous l'exécuteriez via votre émulateur de terminal normal. Après cela, revenez au bureau (TTY7) en utilisant Ctrl+ Alt+ F7et tout devrait bien se passer .
la source
pgrep
, vous auriez pu continuer avecpkill
SIGSTOP
existe, je dirais qu'il est mineur. Je l'ai souvent utilisé sur Chromium, et je ne me souviens pas que ce soit la raison d'un crash.killall
! ;-)Pour suspendre, essayez:
killall -SIGTSTP chromium-browser
Si cela ne fonctionne pas, essayez la version puissante:
killall -SIGSTOP chromium-browser
.De toute façon, pour continuer à utiliser
killall -SIGCONT chromium-browser
. J'ai essayé avec Firefox et cela a fonctionné. Notez cependant que si vous cliquez sur des boutons dans Chromium alors qu'il est suspendu, il exécutera ce truc une fois que vous continuerez son exécution.la source
chromium-browser
nom du processus. +1google-chrome
si vous utilisez Google Chrome, car la différence est apparemment déroutanteVous pouvez essayer ce qui suit (dans un terminal):
Ensuite, vous verrez quelque chose comme ceci:
Notez le nombre 7166 (ou quel que soit le nombre), puis faites:
Cela suspendra l'exécution du processus. Il ne libérera pas immédiatement la mémoire qu'il utilise, mais la mémoire sera disponible pour d'autres processus s'ils en ont besoin.
Alors fais
kill -CONT 7166
pour travailler à nouveau avec le programme.Notez que vous devez modifier 7166 le cas échéant.
la source