Как я могу выйти из графического интерфейса с помощью CLI?

Я только что удалил его при установке. Я использовал pppd вручную, чтобы набрать модем 3G-модема, и resolvconf вмешался в мои настройки DNS, автоматически добавив DNS-провайдер, когда я хотел использовать пользовательский DNS. pppd имеет опции для управления этим, но resolvconf скрепил их с собственными настройками. Я также хотел бы узнать ответ на этот вопрос? Кажется, что это какой-то пакет make-it-easy-but-complicate-things?

p.s. Я нашел этот отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/922578

1
задан 27 August 2012 в 05:10

7 ответов

Это можно сделать с помощью команды gnome-session-quit.

В отличие от приложений, запускаемых из эмулятора X-терминалов, для завершения сеанса из TTY требуется добавить переменную DISPLAY в укажите, какой дисплей X запускает сеанс. Следовательно:

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

, предполагая, что вы используете GNOME on: 0, что имеет место в нормальных ситуациях.

В Ubuntu 12.04LTS, выполняющем GNOME, команда
"DISPLAY=:0 gnome-session-quit --logout --no-prompt" 
работает , Аргумент «-force» не существует на текущем уровне обновления]
16
ответ дан 25 May 2018 в 07:09
  • 1
    Спасибо, я выполнил команду, но я получил некоторую ошибку. Я опубликовал сообщение, чтобы включить эту ошибку. Пожалуйста, поделитесь, если я сделал что-то неправильно. – Ankit 26 August 2012 в 22:11
  • 2
    Мой плохой, я не заметил, что вы упомянули, что используете openbox. К сожалению, эта команда будет работать только со стандартной установкой Ubuntu (Unity / GNOME). В качестве альтернативы вы можете полностью отключить графический интерфейс и, тем самым, свою сессию, запустив sudo service lightdm stop. изменить: какую среду рабочего стола вы используете? Openbox - это просто оконный менеджер. – Cumulus007 26 August 2012 в 23:36
  • 3
    Я пытаюсь использовать kde / openbox или gnome / openbox. – Ankit 27 August 2012 в 07:42
  • 4
    Не работает, если ваш терминал не является частью того же сеанса dbus, что и сеанс gnome. Как вы попадаете в другую сессию dbus? – Zan Lynx 15 February 2013 в 03:19
  • 5
    Это команда, которая запускается при нажатии кнопки «Выход из системы» ... " через графический интерфейс? – Dor 30 September 2016 в 02:23

Пожалуйста, следуйте совету takkat. Стандарт - Ctrl + Alt + Backspace.

Вы также можете запустить:

$ sudo service lightdm restart
6
ответ дан 25 May 2018 в 07:09
  • 1
    gdm был заменен lightdm. Кроме того, по умолчанию отключено ctrl + alt + backspace. – Cumulus007 26 August 2012 в 23:36
  • 2
    @ Cumulus007 Спасибо, ответ обновлен. Я знаю, что ctrl + alt + backspace по умолчанию отключено, никогда не понимал, почему, но я знаю об этом. Я просто информирую OP о том, что стандартная, наиболее часто используемая комбинация клавиш. Я считаю, что лучше придерживаться стандартов, поскольку упрощает устранение неполадок. – terdon♦ 26 August 2012 в 23:39
  • 3
    Остановка lightdm будет означать, что после этого нет приглашения для входа, поэтому у него не будет возможности войти в другую среду. – poolie 27 August 2012 в 05:57
  • 4
    Достаточно честный @poolie, ответьте на обновления. – terdon♦ 27 August 2012 в 06:00

Другой способ:

sudo pkill -u NameOftheUser

или

sudo pkill x

, который убивает всех пользователей.

3
ответ дан 25 May 2018 в 07:09

Реальная проблема заключается в том, что переменные сеанса DBUS должны быть установлены и соответствовать сеансу, который вы пытаетесь контролировать.

Я создал этот скрипт, который устанавливает переменные сеанса DBUS из gnome- если вы хотите выйти из других пользователей / сеансов:

Как перезапустить Gnome-Shell из командной строки?

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
ответ дан 25 May 2018 в 07:09
  • 1
    Использование --logout --no-prompt или --force вместо просто --logout является лучшей идеей, в противном случае будет отображаться приглашение на выход. – gioele 8 April 2018 в 20:21

Если вы находитесь в сеансе xubuntu или подобном, должны использовать xfce4-session-logout insted команд сеанса gnome, поэтому вы видите предупреждения

0
ответ дан 25 May 2018 в 07:09

Это то, что работает лучше всего для меня (с xfce, lightdm и ssh):

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

Или

$ sudo service lightdm restart
0
ответ дан 25 May 2018 в 07:09

Вы можете использовать команду killall gnome-session для выхода из системы. Это будет работать для всех сеансов GNOME, и если я правильно запомню все связанные с GNOME. Вернемся к LightDM, чтобы вы могли выбрать нового пользователя или нового пользователя. :

)
-2
ответ дан 25 May 2018 в 07:09
  • 1
    Не лучший способ выхода из системы. Проверьте askubuntu.com/questions/69114/… – jokerdino♦ 26 August 2012 в 19:25
  • 2
    Никогда не видел этот вариант раньше. Я, вероятно, должен начать использовать это. Я предполагаю, что killall gnome-session является сильным способом закрыть его. – Ryan McClure 26 August 2012 в 19:26

Другие вопросы по тегам:

Похожие вопросы: