54 votes

Comment puis-je me déconnecter du GUI en utilisant le CLI ?

J'ai choisi un DE Openbox au moment de la connexion et le système a mis du temps à charger le DE. Je suis donc passé au CLI ( Ctrl + Alt + F1 ) et j'ai redémarré mon système (mais je voulais me déconnecter de l'interface graphique et ne pas redémarrer tout le système).

Ma question est la suivante : puis-je émettre une commande dans l'interface CLI pour me déconnecter de l'interface graphique afin de pouvoir sélectionner un autre DE ? (Je ne veux pas redémarrer mon système à chaque fois que DE se bloque).


$ DISPLAY=:0 gnome-session-quit --force

** (gnome-session-quit:3144): WARNING **: Failed to call logout: The name org.gnome.SessionManager was not provided by any .service files

3voto

Comme alternative, vous pouvez mettre fin aux sessions des utilisateurs en utilisant la méthode suivante, qui fonctionne bien pour déconnecter les utilisateurs, sauf l'utilisateur root, lors de travaux de maintenance par exemple.

loginctl | egrep -v "root|SESSION|listed" | awk '{print $1}' | xargs loginctl terminate-session

2voto

jgindin Points 863

Le vrai problème est que les variables de session DBUS doivent être définies et correspondre à la session que vous essayez de contrôler.

J'ai créé ce script qui définit les variables de session DBUS à partir de l'environnement gnome-session au cas où vous voudriez déconnecter d'autres utilisateurs/sessions :

Comment redémarrer Gnome-Shell à partir de la ligne de commande ?

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
}

1voto

Sergio Abreu Points 195

Si vous êtes dans une session xubuntu ou similaire, vous devez utiliser xfce4-session-logout au lieu des commandes de session gnome, c'est pourquoi vous voyez des avertissements

1voto

Robin Points 8298

C'est ce qui fonctionne le mieux pour moi (avec xfce, lightdm et ssh) :

$ DISPLAY=:0.0 xfce4-session-logout --logout

Ou

$ sudo service lightdm restart

0voto

arne_G Points 1

Si vous utilisez Openbox, vous pouvez utiliser openbox --exit qui quittera la session Openbox et retournera au gestionnaire de connexion, dans mon cas LightDM.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X