
Gibt es eine andere Möglichkeit, das google-chrome
Beenden vom Terminal aus zu veranlassen, als zu verwenden killall google-chrome
?
Ich möchte es gerne über ein Skript schließen können, ohne es zu beenden.
Antwort1
Dieser Befehl beendet den Chrome-Prozessbaum in allen Fenstermanagern ordnungsgemäß:
pkill --oldest chrome
oder wenn Sie es vorziehen:
/usr/bin/pkill --oldest --signal TERM -f chrome
Einzelheiten:
- Anmutig bedeutet: Vermeiden Sie die Anzeige „Google Chrome wurde nicht ordnungsgemäß heruntergefahren. Um erneut zu starten ...“, wenn Chrome das nächste Mal startet.
- Chrome-Browser (z. B. Version 39.0.2171.95) fängt ab und verarbeitet
SIGTERM
- Signalisiert einen einzelnen Prozess, die Wurzel des Prozessbaums von Chrome, daher
--oldest
SIGTERM
ist dasselbe wie Signal15
, daher--signal TERM
oder lassen Sie es einfach weg, daSIGTERM
dies das Standardsignal ist.wmctrl
funktioniert mit Unity und einigen anderen, aber nicht mit allen Fenstermanagernwmctrl -c
schließt jeweils ein Fenster. Um alle Chrome-Fenster zu schließen, benötigen Sie also etwas wiewhile wmctrl -c 'Google Chrome'; do sleep 0.2; done
Antwort2
Vielleichtwmctrl
könnte hilfreich sein. Sie könnten die -c
Option verwenden, die ein Fenster ordnungsgemäß schließt:
wmctrl -c chrome
Die Zeichenfolge chrome
wird mit den Fenstertiteln abgeglichen. Beachten Sie, dass das Fenster möglicherweise nicht geschlossen wird, wenn eine Meldung angezeigt wird (z. B. wenn Sie mehrere Registerkarten geöffnet haben).
Antwort3
Das funktioniert bei mir:
killall --quiet --signal 15 -- chrome
Beachten Sie, dass ich einen ziemlich ausführlichen Befehl verwende, um die Lesbarkeit des Codes zu gewährleisten. Sie können natürlich auch Folgendes eingeben:
killall -q -15 chrome
Antwort4
versuchen:
kill -3 <pid_of_chrome>
Dadurch wird ein „QUIT“-Signal an Chrome gesendet. Abhängig von Ihrem Fenstermanager ist dies das Signal, das normalerweise bei der Aufforderung zum Schließen gesendet wird.