11

Я получаю доступ к машине (OpenSuse 11 с KDE) через NX.

Я не могу использовать сочетания клавиш Alt-Ctrl-Del, поскольку они записаны моей системой. Обычная кнопка выхода из системы просто завершает сеанс NX, не завершая сеанс KDE. Я не могу вызвать kdm restart как у меня нет привилегий root.

Другие дикие предположения, такие как logout и exit , также не работают: первый жалуется на отсутствие входа в оболочку, а второй просто закрывает консоль.

Моя ракушка слаба, поэтому любая помощь приветствуется.

2 ответа2

21

Вы можете отправить команду выхода через 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 = выключение

Третий параметр - это параметр "когда", но не ясно, каково его влияние.

-1

Нашли этот пост, содержащий несколько способов добиться выхода из оболочки. Использование skill -KILL -u 'whoami' работает хорошо

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .