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