Вопрос или проблема
У меня есть машина с 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-сервера.