Сегодня мы расскажем еще об одной простой и удобной утилите из состава systemd – loginctl, которая предназначена для управления пользователями и сессиями.
Вообще-то утилита оперирует тремя типами объектов:
▫️session – сессия, каждая авторизация пользователя в системе, исключая sudo и su.
▫️user – пользователь системы, который может иметь одну или несколько сессий одновременно.
▫️seat – рабочее место, имеет актуальность только для терминальных сред.
Начнем с просмотра, чтобы увидеть все активные сессии введите:
loginctl list-sessionsили просто
loginctlДля вывода всех выполнивших вход пользователей:
loginctl list-usersДля вывода текущего состояния пользователя или сессии выполните:
loginctl user-status <username>или
loginctl session-status <ID>Где вам потребуется указать имя пользователя или идентификатор сессии.
Вместе с информацией о сессии или пользователе вы также увидите дерево запущенных от его имени процессов.
Чтобы увидеть подробности конкретной сессии или пользователя следует использовать команды:
loginctl show-session <ID>loginctl show-user <username>Для завершения сессии можно использовать:
loginctl kill-session <ID>При этом всем процессам сессии будет послан сигнал
SIGTERM, если мы хотим это изменить, то можем указать сигнал явно:loginctl kill-session <ID> --signal SIGKILLВ качестве альтернативы можно использовать:
loginctl terminate-session <ID>В целом обе команды дают аналогичный результат, но terminate не позволяет явно указывать сигнал и для завершения процессов использует инструменты systemd, такие как
StopUnit().Если мы хотим завершить все сессии пользователя, то можно использовать:
loginctl kill-user <username>или
loginctl terminate-user <username>В графическом интерфейсе мы можем блокировать или разблокировать экран командами:
loginctl lock-session | unlock-session <id> Также можем переключаться на нужную сессию:
loginctl activate <id> Еще один интересный момент, это управление службами пользователя. Обычно они запускаются при интерактивном входе пользователя в систему и останавливаются при его выходе.
Однако бывает необходимость, чтобы они стартовали без входа в систему, в таком случае используйте команду:
loginctl enable-linger <username>Чтобы отключить такое поведение:
loginctl disable-linger <username>Как видим, systemd – это не только службы, но и обширный набор простых инструментов для полноценного управления вашей Linux-системы.