web-dev-qa-db-fra.com

Comment redémarrer GNOME Shell en ligne de commande?

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?

45
Benjamin

La commande pour remplacer gnome-Shell serait gnome-Shell --replace.

De la page de manuel de gnome-Shell:

--replace             Replace the running window manager
43
jokerdino

Le plus simple est de Alt+F2 et tapez r puis .

31
agustibr

Vous pouvez également faire un killall -3 gnome-Shell.

20
Denis

La commande devrait simplement être gnome-Shell --replace.

5

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:

  • Ctrl+Alt+F2 passer au terminal
  • connectez-vous avec vos identifiants (nom d'utilisateur et mot de passe), puis exécutez:
  • DISPLAY=:0 gnome-Shell -r &
  • déconnecter exit and
  • Alt+F1 pour revenir à l'interface graphique X Window.
4
ino

Je suis venu avec cette fonction pour déconnecter les utilisateurs (voir en bas)

Il suppose

  • vous avez les permissions Sudo
  • vous avez bash
  • les utilisateurs ont une session X en cours d'exécution (bien que vous puissiez pouvoir émettre la même commande de déconnexion plusieurs fois pour vous débarrasser des sessions restantes)

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:

  • Il s’agit d’un instrument contondant qui fonctionne en copiant simplement l’environnement de session complet. Cela pourrait être plus sélectif.
  • Parfois, la déconnexion semble prendre un certain temps
  • Dans de rares occasions, la session continue d'être signalée jusqu'à ce que quelqu'un visite le vt où la session s'est déroulée, mais rien n'est plus là)

CODE

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
}
1
sehe

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à.

1
MoreIT