Рейтинг:1

невозможно убить сеанс пользователя с помощью loginctl

флаг gh

Я запускаю lubuntu 20.04 с sddm в качестве диспетчера отображения.

Всякий раз, когда я выхожу из системы через графический интерфейс и вхожу в систему как другой пользователь, пользовательская сессия не уничтожается (не знаю, является ли это по дизайну). Итак, loginctl показывает мне двойные сеансы для моих пользователей.

Все сеансы моего 2. пользователя, с которым я убил

killall -u второе_имя_пользователя

для моего основного пользователя осталось 3 сеанса.

Сеанс с самым низким идентификатором сеанса, который я мог удалить с помощью

sudo loginctl kill-session 3

Остаток

loginctl list-sessions 
ИДЕНТИФИКАТОР СЕССИИ МЕСТО ПОЛЬЗОВАТЕЛЯ TTY
     11 1000 алекс сит0    
     21 1000 алекс сит0    

Следующая попытка

alex@Guilmon:~$ sudo loginctl kill-session 11
[sudo] Пароль для Алекса: 
alex@Guilmon:~$ loginctl list-sessions 
ИДЕНТИФИКАТОР СЕССИИ МЕСТО ПОЛЬЗОВАТЕЛЯ TTY
     11 1000 алекс сит0    
     21 1000 алекс сит0    

2 сеанса указаны.
алекс@Гилмон:~$ 


Как я могу избавиться от этого? Или избегайте этой ситуации (более одного сеанса на пользователя)
guiverc avatar
флаг cn
Я не уверен, что вы имели в виду под «*выйти из системы через графический интерфейс*», но я создал нового пользователя «бла» в системе QA-тестирования (*шутка*, поскольку это последнее, что мы тестировали для обеспечения качества, и, таким образом, то, что я сейчас есть под рукой) и не смог воссоздать эту проблему на *impish* (21.10). Возможно, я не смогу попробовать это сегодня на *focal*...
guiverc avatar
флаг cn
Хорошо, я вижу это с помощью *фокальной* живой системы... У меня нет времени на дальнейшее изучение, извините.
Рейтинг:1
флаг gh

Я думаю, что я узнал, чтобы избежать этой ситуации. В

/etc/systemd/logind.conf

KillUserProcesses=да

Из руководства

KillUserProcesses=
           Принимает логический аргумент. Настраивает, должны ли процессы пользователя завершаться при выходе пользователя из системы. Если true, единица области видимости
           соответствующий сеансу, и все процессы внутри этой области будут завершены. Если false, область действия «заброшена», см.
           systemd.scope(5), и процессы не уничтожаются. По умолчанию «нет», но см. параметры KillOnlyUsers= и KillExcludeUsers= ниже.

           В дополнение к сеансовым процессам, пользовательский процесс может выполняться под модулем управления пользователями user@.service. В зависимости от настроек задержки это может
           разрешить пользователям запускать процессы независимо от их сеансов входа в систему. См. описание enable-linger в loginctl(1).

           Обратите внимание, что установка KillUserProcesses=yes приведет к поломке таких инструментов, как screen(1) и tmux(1), если только они не будут перемещены за пределы области действия сеанса. Видеть
           пример в systemd-run(1).
я перезагружаю 
    sudo systemctl перезапустить systemd-logind.service 

после выхода из системы 1. пользователя и входа в систему 2. пользователя и обратно

alex@Guilmon:~$ loginctl 
ИДЕНТИФИКАТОР СЕССИИ МЕСТО ПОЛЬЗОВАТЕЛЯ TTY
     15 1000 алекс сит0    

1 сеанс указан.
алекс@Гилмон:~$ 

Больше не нужно ждать остановки чего-либо из заброшенного сеанса пользователя во время выключения или перезапуска.

Ответить или комментировать

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