Je voudrais implémenter un raccourci clavier pour redémarrer gnome-Shell chaque fois que celui-ci plante ( certains bugs ne sont pas encore corrigés pour le moment). Pour cela, il me faudrait une ligne de commande pour redémarrer le shell.
Le Alt+F2 et la commande restart
ne fonctionnera pas lorsque le shell sera planté car l’invite est implémentée dans le shell.
Par conséquent, comment redémarrer le gnome-Shell en ligne de commande?
La commande pour remplacer gnome-Shell serait gnome-Shell --replace
.
De la page de manuel de gnome-Shell
:
--replace Replace the running window manager
Le plus simple est de Alt+F2 et tapez r
puis ↵.
Vous pouvez également faire un killall -3 gnome-Shell
.
La commande devrait simplement être gnome-Shell --replace
.
Si le gnome-Shell
entier est gelé, il existe un moyen de le redémarrer à partir du terminal sans redémarrer la fenêtre X entière:
DISPLAY=:0 gnome-Shell -r &
exit
andJe suis venu avec cette fonction pour déconnecter les utilisateurs (voir en bas)
Il suppose
Vous pouvez lui donner plusieurs noms d'utilisateurs:
logout john jane mike elisa
Et vous pouvez lui donner des options supplémentaires:
logout john --force
Donc, j'ai la fonction d'assistance suivante:
function forcelogout() {
logout "$@" --no-Prompt --force
}
Remarques:
function logout() {
local USERNAME
export USERNAMES=( )
while [ -n "$1" ]; do case "$1" in
-* ) break ;;
*) USERNAMES+=( "$1" ); shift ;;
esac; done
for USERNAME in "${USERNAMES[@]}"; do
local SESSION_PID=$(pgrep -fu "$USERNAME" gnome-session|head -1)
if [ -n "$SESSION_PID" ]; then
(
Sudo -u "$USERNAME" cat "/proc/$SESSION_PID/environ" | xargs -0 -n 1 echo export
echo "gnome-session-quit --logout $@"
) | Sudo -u "$USERNAME" sh -;
fi
done
}
J'ai défini un alias: alias gnomeshellrestart='echo "gnome-Shell --replace -d" $(w| grep "$USER"| awk "{print \$3}"|grep ":"|head -1)| at now'
Vous pourrez peut-être démarrer un terminal en cliquant avec le bouton droit de la souris sur l’arrière-plan et en tapant à cet endroit (alt-tab est alors dysfonctionnel également); sinon, connectez-vous à un terminal avec par exemple Ctrl-Alt-F2 et exécutez à partir de là.