Можно ли перезапустить рабочий стол KDE Plasma без выхода из системы?

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

Можно ли перезапустить рабочий стол KDE Plasma без выхода из системы?

Я говорю о стандартном рабочем столе KDE. Через некоторое время (несколько дней) панель задач перестает работать должным образом. Это связано с какой-то невыявленной ошибкой, но меня это сейчас не беспокоит. Все исправляется, как только я выхожу и снова вхожу в систему.

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

Есть ли способ просто перезагрузить рабочий стол, не закрывая все запущенные приложения?

В KDE 4 вы можете сделать:

killall plasma-desktop #остановить
kstart plasma-desktop #перезапустить

В KDE 5 используйте:

killall plasmashell #остановить
kstart plasmashell #перезапустить

В KDE > 5.10 используйте:

kquitapp5 plasmashell
kstart5 plasmashell

Иногда plasmashell не отвечает, поэтому kquitapp5 не срабатывает по истечении времени ожидания, и вам приходится возвращаться к killall. В общем, я бы сделал :

# Для KDE 4
killall plasma-desktop && kstart plasma-desktop

# Для KDE 5 < 5.10
killall plasmashell && kstart plasma-desktop

# Для KDE > 5.10
kquitapp5 plasmashell || killall plasmashell && kstart5 plasmashell

Замечания :

  1. Если вы не уверены, какая версия KDE у вас установлена, команда kinfocenter --version подскажет.
  2. Вы можете пропустить часть kquitapp5 plasmashell ||, если не хотите зависать в таймауте, когда plasmashell не отвечает.

В KDE5 используйте “kstart plasmashell”, чтобы перезапустить plasmashell как службу, вместо plasmashell &. Если вы используете его таким образом, он будет запущен как независимая служба, не связанная с текущей сессией терминала (что означает, что вы можете закрыть терминал, не завершая процесс). Кратко:

KDE5 (в терминале):

killall plasmashell
kstart plasmashell

Ну, я не ожидал, что это сработает (и это не совсем то, что спрашивает вопрос), но нажав Alt+F2 и запустив:

kwin --replace

Я перезагружаю композитор KDE, и это, похоже, исправляет мерцание. Думаю, это связано с моей конкретной проблемой.

Менеджер окон kwin отвечает за перемещение окон и т. д. Его можно перезапустить командой:

kstart kwin --replace

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

plasmashell отвечает за фон и другие вещи оболочки. Перезапускать его следует так:

killall plasmashell
kstart plasmashell

Обратите внимание, что это не восстановило меню для меня.

Также, что интересно, это снова ломает kwin для меня, то есть я больше не могу перемещать окна. В консоли я получаю что-то вроде QXcbConnection: XCB error: 3 (BadWindow), sequence: ..., resource id: ..., major code: 15 (QueryTree), minor code: 0.

Когда я перезапускаю plasma с помощью

plasmashell --replace &

Все снова работает нормально. Моя текущая версия plasma 5.26.4.

Я посмотрел это, потому что у меня была проблема, когда я не мог открыть никакие настройки KDE, но я не хотел перезагружаться или выходить. Я нашел, что лучший способ сделать это (по крайней мере в KDE 5) – использовать krunner (Alt+F2), чтобы выполнить killall plasmashell, а затем сразу же plasmashell. Я пробовал сделать это в окне Konsole, используя killall plasmashell, а затем plasmashell &, и это сработало, но как только я закрыл окно Konsole, plasma также закрывался. Даже несмотря на то, что вы, похоже, разрешили свою проблему, я подумал, что опубликую это для людей, которые будут искать в будущем, чтобы перезапустить plasma.

В KDE 4 просто замените plasmashell на plasma-desktop

У меня всегда возникают проблемы с ksycoca5, и, похоже, это причина, по которой plasmashell начинает капризничать и также не может перезапуститься. Чтобы это исправить, я сделал:

$ mv ~/.cache/ksycoca5* /tmp
$ killall plasmashell buildksycoca5; kstart plasmashell

Окей .. Я использую OpenSuse Leap 15.1 с KDE5 Plasma. Периодически моя X-среда портится (после примерно 24 часов работы машины), и я получаю
“KLauncher не удалось достичь через D-Bus. Ошибка при вызове start_service_by_desktop_path: Не подключен к серверу D-Bus”

Результатом этого является то, что, хотя мой рабочий стол все еще функционирует, я не могу запускать любые приложения, использующие KLauncher – очень раздражает. (ЗАМЕТКА: также мой xwindows vncserver, похоже, запускает 99 экземпляров окон, к которым я мог бы подключиться – это неправильно – я еще не исправил это, но сделаю). Тем не менее, я НАШЕЛ ответ на вышеупомянутую проблему, чтобы перезапустить KDE 5 Plasma в своей среде без перезагрузки:

1) killall plasmashell
2) kstart5 plasmashell kwin

Это перезапускает все так, как будто система только что загрузилась. Надеюсь, это поможет

Спасибо

Я также пробовал что-то вроде:

killall plasmashell; kstart plasmashell

Или даже это:

killall plasmashell; kwin --replace && kstart plasmashell

Но, по неизвестным причинам, это не сработало.

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

killall plasmashell ; sleep 3 ; kwin --replace ; sleep 5 ; kstart plasmashell

Наконец, я заметил, что, когда я ввожу 'kwin|plasma' в поле фильтра KSysGuard, он сообщает, что после убийства plasmashell такие файлы *.so все еще присутствуют: desktop.so, file.so. Мы также должны их убить. В противном случае у нас будут копии этих файлов после каждой перезагрузки.

Таким образом, окончательные команды для перезапуска рабочего стола plasma следующие:

killall plasmashell desktop.so file.so ; sleep 5 ; kwin --replace ; sleep 5 ; kstart plasmashell

В KDE4 я обнаружил, что использование памяти быстро увеличивается до около гигабайта, потому что открытие программ постепенно использует больше оперативной памяти, но их закрытие не освобождает её. Это происходит в Mint 17.3 с KDE, но, похоже, затрагивает практически все системы KDE Plasma 4.

Мне надоело входить и выходить или использовать ALT + F2 для завершения и перезапуска plasma. Теперь у меня есть скрипт (установленный как исполняемый), который находится на панели..

   
#!/bin/bash 
killall plasma-desktop 
plasma-desktop & 
   

Кликнув на иконку, plasma закрывается и перезапускается за 15 секунд. Я все еще могу использовать открытые программы на любом виртуальном рабочем столе, который я в данный момент использую, пока plasma перезапускается.

Согласно разработчикам KDE лучший способ перезапустить KDE Plasma, если у вас systemd, это

systemctl restart --user plasma-plasmashell.service

Это работает в KDE Plasma 6.

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

Да, вы можете перезапустить рабочий стол KDE Plasma, не выходя из системы, и это может помочь решить некоторые проблемы, такие как сбои панелей и некорректное поведение интерфейса. Для этого вы можете использовать серию команд в терминале. Вот как это сделать в зависимости от версии KDE Plasma, которую вы используете.

Для KDE 4:

killall plasma-desktop && kstart plasma-desktop

Для KDE 5 (версии < 5.10):

killall plasmashell && kstart plasmashell

Для KDE 5 (версии >= 5.10):

kquitapp5 plasmashell || killall plasmashell && kstart5 plasmashell

Дополнительные советы:

  1. Если kquitapp5 не удался из-за тайм-аута, и вы использовали killall, это может быть нормальным решением в случае зависания plasmashell.
  2. Если вы хотите убедиться, что plasmashell перезапускается как независимая служба, особенно если вы планируете закрыть терминал, используйте:

    kstart plasmashell
  3. Иногда также полезно перезапустить композиционер kwin, который отвечает за управление окнами. Вы можете сделать это, выполнив команду:
    kstart kwin --replace

Перезапуск Plasma с задержкой:

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

killall plasmashell; sleep 3; kwin --replace; sleep 5; kstart plasmashell

Использование systemd (KDE Plasma 6 и выше):

Если вы используете систему с поддержкой systemd, наиболее эффективным способом перезапуска будет:

systemctl restart --user plasma-plasmashell.service

Примечания:

  • Чтобы узнать, какая версия KDE Plasma у вас установлена, вы можете выполнить команду:
    kinfocenter --version
  • Если у вас возникают проблемы с ksycoca5, вы можете попробовать удалить кэш:
    mv ~/.cache/ksycoca5* /tmp

Использование этих команд позволит вам перезапустить KDE Plasma без необходимости выхода из системы и сохранит ваши незавершённые процессы, такие как работающие виртуальные машины. Надеюсь, это поможет вам эффективно решать проблемы с рабочим столом!

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

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