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

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

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

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

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

killall plasma-desktop #to stop itkstart plasma-desktop #to restart it

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

killall plasmashell #to stop itkstart plasmashell #to restart it

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

kquitapp5 plasmashellkstart5 plasmashell

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

# For KDE 4killall plasma-desktop && kstart plasma-desktop# For KDE 5 < 5.10killall plasmashell && kstart plasma-desktop# For KDE > 5.10kquitapp5 plasmashell || killall plasmashell && kstart5 plasmashell

Замечания :

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

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

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

killall plasmashellkstart plasmashell

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

kwin --replace

Это перезагружает композитор KDE, и это, похоже, устраняет мерцание. Я предполагаю, что это фактор моей конкретной проблемы.

Оконный менеджер kwin отвечает за перемещение по окнам и т.д. Который может быть перезапущен с помощью этого:

kstart kwin --replace

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

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

killall plasmashellkstart plasmashell

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

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

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

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

Я обнаружил, что у меня всегда возникают проблемы с ksycoca5, и, похоже, это причина, по которой plasmashell попадает в strop, а также останавливает перезапуск 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) убейте всех плазменных снарядов2) kstart5 плазменных снарядов kwin

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

Спасибо

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

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

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

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

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

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