Вы можете отправить команду выхода через dbus в KDE, которая должна (если это возможно) прекратить сеанс.
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
dbus - это система обмена сообщениями, которая позволяет приложениям взаимодействовать друг с другом, а qdbus
команда - это утилита для отправки сообщений dbus приложениям.
Приложения регистрируются в dbus, а ksmserver
частью KDE является менеджер сеансов - он следит за тем, кто вошел в систему.
Итак, мы отправляем сообщение ksmserver
на /KSMServer
интерфейс и сообщаем о выходе из системы. Сообщение, которое мы отправляем, - это то же самое сообщение, которое отправляется в KSM, когда вы нажимаете на значок выхода из системы на рабочем столе.
Три нуля являются параметрами и могут изменить тип выхода из системы, который мы делаем:
Первый параметр:
- 0 = не ждать подтверждения
- 1 = ждать подтверждения (с 30-секундным таймаутом)
Второй параметр:
- -1 = Запросить действие, по умолчанию отключение (имеет смысл только при ожидании подтверждения.)
- 0 = Выйти
- 1 = перезагрузка
- 2 = выключение
Третий параметр - это параметр «когда», но не ясно, каково его влияние.