Intereting Posts
Gentoo Linux: включение эквалайзера mbeq для ALSA прерывает звук приложения, но работает при тестировании с помощью теста колонок mkfs.xfs / dev / custom_dev есть ли инструмент / демон, который автоматически заполняет / etc / ethers в фоновом режиме, чтобы иметь надлежащий wake on lan hostname: Mac-база данных при необходимости? ls выводит несколько столбцов, даже если отправлен в grep с помощью zml-конфигурации grml Перезагрузите гайку-драйвер, когда данные устарели, устройство USB продолжает меняться Выполнять команды в tmux из терминала Поиск файлов на основе имени префикса каталога и копирования в каталог Добавить аудио в видеофайл без кодирования, а также синхронизировать аудио FPS с видео FPS Перемещение большого количества файлов и каталогов в другой каталог «Найти» вывод относительно каталога Ubuntu: обрабатывает vfs-рабочий, беря все ресурсы процессора как преобразовать символ ^ I В чем разница между rc, rc.local и rc.sysinit? Инструмент скриншотов Linux Mint Как искать совпадение, затем несоответствие в этой строке, но включать контекстные строки для сопоставленной строки?

Выйти из системы с помощью systemd

Я запускаю диспетчер окон с помощью сервисных модулей systemd (следуя этому руководству ). После входа в tty1 в .zlogin выполняется .zlogin (я использую ZSH в качестве оболочки входа):

 if [[ -z "$DISPLAY" && $(tty) = /dev/tty1 ]]; then nohup systemd --user > ~/.xlog 2>&1 & disown %2 logout fi 

Systemd запускает X-сервер, оконный менеджер, … через сервисные модули.

Проблема начинается, когда я хочу выйти из системы.
Должен ли я просто выполнить kill $MANAGERPID чтобы убить демона systemd?
Кажется гораздо более чистым сделать loginctl terminate-session $XDG_SESSION_ID но для этой команды требуются дополнительные привилегии.

Вот вопрос: что является предпочтительным способом выхода из системы с описанной выше настройкой?

Это то, что я использую для выхода из использования xmonad (после использования wmctrl для закрытия всех открытых окон):

 session=`loginctl session-status | head -n 1 | awk '{print $1}'` loginctl terminate-session $session 

Я не уверен, почему вам нужны дополнительные привилегии для loginctl terminate-session – это работает для меня без такой необходимости.

Также обратите внимание, что есть разные способы получения идентификатора сеанса. В этом примере я просто беру его непосредственно из самого loginctl . Также есть $XDG_SESSION_ID (как вы писали) и /proc/self/sessionid .