Как убить и перезапустить kwin и plasma-desktop из удаленной ssh-сессии

Вопрос или проблема

У меня есть машина с VNC, работающая под управлением kde4 в качестве рабочего окружения. Я вошел в машину VNC, и на рабочем столе был просто черный экран. Чтобы исправить это, я подключился к хосту VNC через ssh и выполнил команду pkill -ABRT kwin. Это позволило графической среде снова появиться, хотя некоторые элементы, такие как панель задач внизу и украшения окон с иконками для закрытия / минимизации окон отсутствуют. Однако более важная проблема заключается в том, что, хотя мышь работает, я не могу использовать клавиатуру в любом окне, которое я открываю, и сочетания клавиш также не регистрируются.

Я думаю, что если бы я мог, перезагрузка машины решила бы мою проблему, однако эта опция недоступна для меня, то есть я должен исправить это в качестве пользователя без прав администратора из сеанса ssh. Однако, когда я пытаюсь запустить plasma-desktop из сеанса ssh, я получаю следующий ответ:

connect /tmp/.X11-unix/X0: Нет такого файла или каталога plasma-desktop(xxxxx): 
KUniqueApplication: Не удается найти сервер сессии D-Bus:  "/usr/bin/dbus-launch завершился ненормально с следующей ошибкой: Ошибка автозапуска: Инициализация X11 не удалась."

plasma-desktop(xxxxx): KUniqueApplication: Канал закрыт неожиданным образом.

Любая помощь или предложения, которые кто-либо может предоставить, будут очень признательны.

Пишу по поводу >= kde-plasma-5.13 с x11 backend :

Просто многие (если не все) процессы фреймворка kde-plasma запускаются и контролируются через dbus.
Поэтому, насколько это возможно, следует воздерживаться от завершения процессов и попросить dbus правильно завершить эти процессы и перезапустить их сразу после этого:

Если возникают проблемы с рабочим окружением, то из консоли попробуйте, в следующем порядке:

kwin_x11 --replace

Затем

plasmashell --replace

Спасибо, но эти команды не работают, потому что они не могут найти DISPLAY (поскольку его нет, так как я в SSH)

Это работает для меня с использованием ssh:

systemctl restart --user plasma-plasmashell

Два разработчика KDE написали:

Также дружеское напоминание о том, что если вы используете интеграцию Plasma с systemd, а вы, вероятно, используете, так как она включена по умолчанию для дистрибутивов, которые поставляются с systemd, правильный способ перезапуска Plasma:

systemctl restart --user plasma-plasmashell

Может быть, также интересно: Plasma и запуск systemd.

Ответ или решение

Для решения проблемы с перезапуском KWin и plasma-desktop на VNC-машине с окружением рабочего стола KDE4 через SSH-соединение, необходимо понимать некоторые ключевые аспекты работы с графическими интерфейсами и их взаимодействие с терминальными сессиями. Ниже приводится подробное руководство по устранению данной проблемы.

1. Понять проблему

Проблема заключается в том, что при попытке перезапустить графическое окружение из SSH вы сталкиваетесь с ошибками, связанными с отсутствием дисплея. Это связано с тем, что SSH-сессия не имеет доступа к графическому серверу (X11), и при попытке запустить приложения вы получаете сообщения об ошибках, таких как "No such file or directory" и "Cannot find the D-Bus session server".

2. Убедиться в доступности необходимых служб

Во-первых, убедитесь, что ваша сессия поддерживает графику через VNC и что соответствующие службы запущены. Вам может понадобиться проверить статус службы системы, использующей D-Bus, и сам plasma-desktop. Можно использовать следующие команды:

systemctl --user status plasma-plasmashell

3. Перезапуск plasma-plasmashell

Как уже упоминалось в обсуждении, в случае использования Plasma с интеграцией systemd, правильным методом перезапуска окружения рабочего стола является использование команды:

systemctl restart --user plasma-plasmashell

Эта команда перезапускает только оболочку рабочего стола, что позволяет избежать сложностей, связанных с полноценной перезагрузкой системы.

4. Поддержка X11 через SSH

Если проблема сохраняется, попробуйте использовать опцию -Y (или -X) с командой SSH, чтобы запустить SSH с поддержкой X11, хотя для VNC это нецелесообразно, поскольку вы уже находитесь в VNC-сессии. Однако, если вы хотите тестировать приложения, это может быть полезным. Пример команды:

ssh -Y your_username@your_vnc_machine

5. Удаленная работа с графикой

Если вы хотите попробовать запустить KWin и plasmashell через SSH с временным предоставлением доступа к дисплею, установите переменную окружения DISPLAY:

export DISPLAY=:0
kwin_x11 --replace &
plasmashell --replace &

Флаг & позволяет запустить процессы в фоновом режиме, что даст вам возможность продолжить работу в текущей сессии.

6. Проверка работоспособности

После выполненных действий проверьте, восстановились ли функциональность панели задач, окон и клавиатуры. Попробуйте взаимодействовать с графическим интерфейсом, отключив и снова подключив VNC, если это необходимо.

Заключение

Работа с графическим интерфейсом через SSH может быть сложной, особенно когда речь идет о VNC и KDE. Используя команды systemctl, вы можете эффективно управлять сессиями и процессами, не прибегая к принудительному завершению. Если все перечисленные методы не дадут результата, вам может потребоваться обратиться за поддержкой к системному администратору для дальнейшего анализа системы.

Надеюсь, данное руководство поможет вам решить проблему с KDE и вернуть работоспособность вашего VNC-сервера.

Оцените материал
Добавить комментарий

Капча загружается...