LINUX.ORG.RU

Как остановить сессию плазмы и выйти в tty?

 , ,


0

2

Логинюсь на tty2 под пользователем games и запускаю nvidia-xrun иногда, там пустой опенбокс со стимом. На tty1 всегда автоматом стартует сессия кде плазма с автологином. Как правильно её прибить при желании, чтобы на tty1 было пусто с логин промптом в консоль?

★★★★

Ответ на: комментарий от imul

systemctl stop sddm - да-да, я сразу подумал. но у меня автологин (ибо второй сессией пользуюсь реже, чтобы был готов от этого отказаться) и он, выходит, не запущен. Запущена плазма.
Нашёл такое: kquitapp5 plasmashell, либо такое: pkill -U $USER -x -9 plasmashell. Вопрос в том, как правильно её завершать

fehhner ★★★★ ()
Ответ на: комментарий от fehhner

Посмотри dbus интерфейс к ksmserver. Например, выключение можно сделать так:

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout 0 2 2 

Выход из сессии требует каких-то других параметров.

Gary ★★★★★ ()
Последнее исправление: Gary (всего исправлений: 1)
Ответ на: комментарий от Gary

Спс, эта строка на шатдаун была. Замена 2 2 на 0 0 или 3 3, даёт корректный логофф автоматический (если открыто окно kwrite какого-нибудь, он спросит сначала, что у вас есть несохранённые изменения). Остановился на этом варианте.

loginctl terminate-user username
делает то же в жёстком виде (не спрашивает ни про какие изменения к примеру, а сразу выкидывает в DM).
Что удивило, если я остановлю после этого sddm с другого tty, то tty1 станет просто недоступным: нет приглашения для входа пользователем в консоль, только последний лог действий как при загрузке/выключении, а ввод в консоль ничего не даёт.

fehhner ★★★★ ()
Последнее исправление: fehhner (всего исправлений: 1)
Ответ на: комментарий от fehhner

а ввод в консоль ничего не даёт

systemctl isolate multi-user.target

Это вырубит все юниты для graphical.target. Вернуться в графику:

systemctl isolate graphical.target

tty занята «потрохами» systemd, что там и как устроено – я точно тебе вот так не скажу и может еще и отличаться в разных дистрах. https://wiki.archlinux.org/index.php/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#%D0%A6%D0%B5%D0%BB%D0%B8

Я бы так делал, по крайней мере это штатный инструмент, а не костыляние.

loginctl terminate-user username

А так ты останавливаешь вообще все от юзера, а у меня и просто в мульти.юзер от меня процессы есть.

mandala ★★★★ ()
Ответ на: комментарий от mandala

Спс, вообще, получилось почти как надо:
Я логинюсь на tty2 пользователем games, происходит логаут из плазмы в сддм основного пользователя на tty1, выключение sddm и запуск вторых иксов на tty2:

qdbus org.kde.ksmserver /KSMServer logout 0 3 3
systemctl isolate multi-user.target
nvidia-xrun
Всё отрабатывает как нужно, что приятно. После запуска
systemctl isolate graphical.target
на tty1 вновь стартует сессия плазмы автоматически. Что интересно, wi-fi подключение к интернету из прошлой сессии не сбрасывается и работает, статус сервиса NetworkManager показывает, что всё хорошо, а вот nm applet перестаёт отображать подключения и сети. Через несколько минут вайфай отрубается и всё корректно работает после рестарта NetworkManager.
Утром посмотрю, наверное, есть смысл стартовать подключение при старте системы из nmcli. Меня, всё равно, раздражал запрос kde wallet о вводе пароля после входа в систему для запуска вайфая.
Эта система у них вообще крайне убого устроена: либо логин и автопароль в валлете, либо автологин и ввод пароля в валлете. Помню, ещё год назад пытался, но тогда это не победил и оставил.
Понимаю, от чего они пытались защититься (пользователь с автовходом везде и без паролей), но бывает 1 пользователь за ноутбуком и единственный нужный пароль при автоматическом включении - от luks. Если я его смог ввести, то логично сразу хотеть попасть в систему.

fehhner ★★★★ ()
Последнее исправление: fehhner (всего исправлений: 2)
Ответ на: комментарий от fehhner

"раздражал запрос kde wallet о вводе пароля после входа в систему для запуска вайфая"

Можно настроить KWallet так, чтобы к нему доступ был по ключу. Тогда ни каких паролей запрашиваться не будет (если, конечно, ключ без пароля).

Netzschlange ()

Можно настроить KWallet так, чтобы к нему доступ был по ключу.

Да? В арчевики просто написано:

Unlock KDE Wallet automatically on login
kwallet-pam is not compatible with GnuPG keys, the KDE Wallet must use the standard blowfish encryption.
The chosen KWallet password must be the same as the current user password.
The wallet cannot be unlocked when using autologin.
...

Я пытался разобраться в причинах, оказалось, что DM может передавать ему пароль для авторазблокировки и потому он должен совпадать с паролем пользовтеля. А при автологине, DM передаёт ему пустое значение вместо пароля и тот не отрабатывает. А kwallet-pam для автологина, не дружит с GPG и требует пароль blowfish.
Пробовал по-разному подключить, так и не вышло тогда.

fehhner ★★★★ ()
Последнее исправление: fehhner (всего исправлений: 2)
Ответ на: комментарий от fehhner

В доке от разработчиков (https://docs.kde.org/trunk5/en/kdeutils/kwallet5/introduction.html) расписано как настроить KWallet на работу с GPG. А что касается kwallet-pam, так он и не должен дружить с GPG, т.к. он для другого предназначен.

Netzschlange ()
Ответ на: комментарий от Netzschlange

kwallet-pam, так он и не должен дружить с GPG, т.к. он для другого предназначен

Для чего, расскажешь? Мб, чтобы как сервис systemd его автозапустил при старте плазмы через сддм? Или, это что-то другое?

fehhner ★★★★ ()
Ответ на: комментарий от fehhner

kwallet-pam — последние буковки это 'Pluggable Authentication Modules'.
Это модуль для аутинтефикации доступа к содержимому KWallet с помощью пользовательских логина + пароля (см. /etc/shadow).
Суть-то в чём. KWallet — это, грубо говоря, зашифрованная база данных паролей (ну и другой информации). И есть два способа шифрования — Blowfish + пароль или с помощью ключа GPG. Поэтому, если выбирается *-pam, то выбирается шифрование по паролю и ни какого GPG.

Netzschlange ()
Ответ на: комментарий от Netzschlange

Ну если не балабол и так заработает, напиши:

  • Включи это
  • Пропиши то
  • Добавь так

Я скажу, что ты классный парень. Ибо у меня не вышло. Т.к. пам-модуль выбирается для своего DM, чтобы производить автологин после входа не вводя пароля, он передаст ему пароль введёный ручками. При автологине пароль не вводится. Я нигде не видел описанных механизмов для ключа без пароля.
Я тебе не верю, я ковырял возможности.

fehhner ★★★★ ()
Последнее исправление: fehhner (всего исправлений: 1)
Ответ на: комментарий от fehhner

Во-первых, всё хозяйство, связанное к KWallet, последний раз настраивал года 3 - 4 назад и с тех пор всё работает без какого-либо вмешательства, несмотря на переход с 16.04 на 18.04. Поэтому детали могу и не вспомнить.
Во-вторых, пользуюсь KDE Neon (читай Ubuntu) — в Арче (если не ошибаюсь, автор именно этим дистрибутивом пользуется) могут быть свои особенности.
Исходя из вышесказанного точных рекомендаций как и что настраивать дать не могу. Но могу дать пару советов в направлении...:
Первое — нужен gpg-agent, который будет запущен как демон. Он нужен чтобы KWallet смог получить доступ к ключу. В Neon'е достаточно установить пакет gpg-agent и активировать сервис gpg-agent.service.
Второе — нужен ключ, для создания ключа использую Kleopatra. Можно и из командной строки его сделать, но когда я это дело осваивал (начало нулевых) у меня, что-то не сложилось. Ключи создавались, но KWallet напрочь не хотел их воспринимать. Kleopatra эту проблему помогла устранить и с тех пор я для создания ключей я пользуюсь ей, чтобы не парить мозг ни себе, ни другим.
И последнее — это прочитать инструкцию, ссылку на которую уже давал https://docs.kde.org/trunk5/en/kdeutils/kwallet5/introduction.html. Там всё разжёвано и больше добавить нечего.

И повторяю, вспоминал мучительно всё, мог что-то упустить...

Netzschlange ()
Ответ на: комментарий от Netzschlange

И самое главное забыл.
Во время выполнения Второе, сколько бы раз не запрашивалось задать пароль для ключа, всегда оставляйте поле пустым. Это обеспечит доступ к ключу без необходимости ввода пароля.

Netzschlange ()