我可以在不登出的情况下重新启动KDE Plasma桌面吗?

我只是在谈论标准的KDE桌面。经过一段时间(很多天)运行后,任务栏停止正常工作。这是由于某种未诊断的错误导致的,但目前并不是我的关注点。只要我重新登录,问题就会得到解决。
我必须关闭所有正在进行的进程,比如虚拟机必须关闭。这真是一件麻烦事。通常意味着我要忍受很多天的闪烁。
有没有办法在不中断所有正在运行的应用程序的情况下重新加载桌面?
10个回答

在KDE 4中,你可以做以下操作:
killall plasma-desktop #to stop it
kstart plasma-desktop #to restart it

在KDE 5中使用:
killall plasmashell #to stop it
kstart plasmashell #to restart it

在KDE > 5.10中使用:
kquitapp5 plasmashell
kstart5 plasmashell

有时候 plasmashell 会无响应,所以在超时后 kquitapp5 失败,你不得不回到 killall。简而言之,我会这样做:
# For KDE 4
killall plasma-desktop && kstart plasma-desktop

# For KDE 5 < 5.10
killall plasmashell && kstart plasma-desktop

# For KDE > 5.10
kquitapp5 plasmashell || killall plasmashell && kstart5 plasmashell

备注:
  1. 如果您不确定您正在运行的KDE版本,可以使用kinfocenter --version命令来查看。
  2. 如果您不想在plasmashell无响应时被卡住,可以跳过kquitapp5 plasmashell ||这部分。

13奇怪的是,这两个都可以在Alt-F2运行对话框中运行(我本以为杀死Plasma会阻止第二次运行),但是没错,运行得很好,停止了闪烁。 - Oli
1@Oli 太棒了,我甚至都不知道Alt-F2这个功能!谢谢 - Tobia
4这在KDE 5 Plasma上不起作用。 - Geremia
7在KDE5中,使用的是plasmashell而不是plasma-desktop。 - dorien
也可以与opensuse完美配合使用。 - devasia2112
最简单的方法是使用Plasma 5的kquitapp5。http://askubuntu.com/a/663702/72652(最好在KRunner中完成,而不是在终端中) - Michael Tunnell
不适用于Debian的“kde-plasma-desktop”实现。这是我第一次尝试它。但是Alt+F2可以使用,对我来说现在已经足够了。 - Paul
8在ArchLinux上,对于KDE5,使用kstart5 plasmashell - Daniel Andrei Mincă
1在KDE 5中,killall plasmashell && kstart plasmashell似乎不再起作用。现在我使用的是kquitapp5 plasmashell && kstart5 plasmashell - Eduardo Lucio
12我将这个添加到系统设置 -> 快捷键 -> 自定义快捷方式中,这样我现在可以按下Ctrl-Alt-Backspace来重新启动Plasma(我选择了这个特殊的组合是因为历史上它可以重新启动X.org)。 - Skylar Ittner
这个方法效果还不错,但是没有涉及到窗口管理器的组件。可以使用另一个答案中提到的方法来解决,即通过kwin_x11 --replace(或者在wayland上使用kwin_wayland)来实现。我添加了一个全局快捷键Ctrl-Alt-Backspace,运行命令nohup sh -c "kquitapp5 plasmashell; kstart5 plasmashell; kwin_x11 --replace &",效果非常完美。我可以在不注销和关闭所有应用程序的情况下更新UI缩放比例。 - theferrit32
对于我来说(使用Manjaro,而不是Ubuntu),kquitapp5 plasmashell 永远冻结了,而 kstart plasmashell 不是一个有效的命令,但是在这个答案中第二和第三个解决方案的组合起作用了:先执行 killall plasmashell 然后再执行 kstart5 plasmashell。我的问题是KDE被冻结了,所以也许这就是为什么 kquitapp5 也会冻结的原因。 - Fabian Röling
2新的重启KDE Plasma的命令是"plasmashell --replace &"。 - DevShot
我不得不使用killall plasmashell && kstart5 plasmashell - kquitapp5对我没有帮助。 - Slbox
1为什么要费心使用kstart,当简单的plasmashell --replace &似乎完全可以工作? - Mikko Rantalainen

在KDE5中,使用"kstart plasmashell"来重新启动plasmashell作为一个服务,而不是使用plasmashell &。如果你以这种方式使用它,它将作为一个独立的服务运行,与当前的终端会话无关(这意味着你可以关闭终端而不终止该进程)。简而言之:在KDE5中(在终端中):
killall plasmashell
kstart plasmashell

只是想说谢谢!偶尔Plasma 5会在我的屏幕底部放置一个奇怪的黑色条,就在任务栏的上方,覆盖了所有窗口下面的内容(你仍然可以与下面的东西进行交互,只是看不到条下面的任何东西)。不知道是什么原因引起的,但是killall plasmashell ; kstart plasmashell可以解决它 :) - riskable
最简单的方法是使用kquitapp5来关闭Plasma 5。 http://askubuntu.com/a/663702/72652 (最好在KRunner中完成,而不是在终端中) - Michael Tunnell
找不到kstart。我需要使用kstart5(Debian 11)。 - Mr. Developerdude

嗯,我没想到这个会起作用(而且也不完全符合问题的要求),但按下Alt+F2并运行:
kwin --replace

重新加载KDE的合成器似乎可以解决闪烁问题。我猜这对我的特定问题有影响。

12尝试在Kubuntu 15.04中进行。在KDE 5中的命令将是kwin_x11或kwin_wayland,取决于后台运行的服务器。 - zurdo
1我实际上是使用所有解决方案的组合来解决的: killall plasmashell kwin --replace(ALT-F2) kstart plasmashell如果没有使用 kwin --replace,plasmashell 将不会重新启动(Kubuntu 16.04)。 - clobrano
2对我有效的解决方案是接受答案和这个命令的结合:killall plasmashell; kwin --replace & kstart plasmashell & exit(加上 & exit 是因为我在终端中运行,否则窗口管理器会依赖于终端窗口保持打开状态如此处所述)。 - Carolus
4这真的公平地起作用了。谢谢你。 - Suleman
啊,那是gnome中对应的快捷键:F2 + R + Enter。 - abu_bua
我的电脑今天冻住了,我完全不知道该怎么办,只好进行全面重置...谢谢你的帮助,解决了问题<3 我正在运行 Kubuntu 22.04。 - João Ciocca
如果你不确定是Plasma Shell还是KWin造成了问题,你可以运行kwin --replace & plasmashell --replace &来替换它们。KWin是负责移动和调整窗口的软件,Plasma Shell是渲染系统栏(默认位于屏幕底部)的进程。 - Mikko Rantalainen

窗口管理器 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的错误信息。

前段时间,当我连接了一个带有USB-C和第二个显示器的USB集线器时,Plasma桌面开始出现问题。窗口面板上没有显示任何图标。
当我重新启动Plasma时,
plasmashell --replace &

一切都正常工作了。我的当前的 Plasma 版本是 5.26.4

2这是plasmashell选项,并且取代了之前使用的kquitapp5kstart5的方法。 - Константин Ван
有一个需要注意的地方是,plasmashell --replace & 会不断生成输出,而 kstart5 则会很快退出。 - Константин Ван

我查了一下这个问题,因为我遇到了一个无法打开任何KDE设置菜单的问题,但我又不想重新启动或注销。我发现(至少在KDE 5中)最好的方法是使用krunner(Alt+F2)来killall plasmashell,然后立即输入plasmashell。我尝试在Konsole窗口中执行killall plasmashell,然后plasmashell &,这样可以解决问题,但只要我关闭Konsole窗口,plasma也会关闭。虽然你似乎已经解决了你的问题,但我觉得我应该把它发布出来,以便将来有需要重新启动plasma的人参考。
在KDE 4中,只需将plasmashell替换为plasma-desktop

好的..我正在运行OpenSuse Leap 15.1,使用KDE5 Plasma。定期地,我的X环境会出现问题(在我让机器运行大约24小时后),然后我会收到以下错误信息:"无法通过D-Bus连接到KLauncher。调用start_service_by_desktop_path时出错:未连接到D-Bus服务器"。
这导致尽管我的桌面仍然正常工作,但我无法启动任何使用KLauncher的应用程序,非常烦人。(注意:我的xwindows vncserver似乎会启动99个显示窗口实例,这是不正确的,我还没有修复这个问题,但我会解决的)。然而,我找到了解决上述问题的方法,可以在不重新启动的情况下重新启动我的环境中的KDE 5 Plasma:
1)killall plasmashell 2)kstart5 plasmashell kwin
这将重新启动所有内容,就像系统刚刚启动一样。希望对你有所帮助。
谢谢

我发现我总是在处理ksycoca5时遇到麻烦,这似乎是导致plasmashell发脾气并停止重新启动的原因。为了解决这个问题,我做了以下操作:
$ mv ~/.cache/ksycoca5* /tmp
$ killall plasmashell buildksycoca5; kstart plasmashell

我也尝试了类似的东西:
killall plasmashell; kstart plasmashell

甚至还有这个:
killall plasmashell; kwin --replace && kstart plasmashell

但是,由于未知原因,它没有起作用。
在我添加了休眠命令之后,Plasma桌面重新启动开始工作。
killall plasmashell ; sleep 3 ; kwin --replace ; sleep 5 ; kstart plasmashell

最后,我注意到,在KSysGuard的过滤字段中键入'kwin|plasma'时,它报告在杀死plasmashell之后,仍然存在这些*.so文件:desktop.so,file.so。我们也必须将它们杀死。否则,每次重新启动后都会有这些文件的副本。
因此,最终的plasma桌面重启命令如下:
killall plasmashell desktop.so file.so ; sleep 5 ; kwin --replace ; sleep 5 ; kstart plasmashell

在KDE4中,我发现内存使用量会迅速增加到大约一吉字节,因为逐渐打开程序会使用更多的RAM,但关闭它们并不会释放内存。这是在Mint 17.3上使用KDE时的情况,但似乎影响几乎所有的KDE plasma 4系统。
我厌倦了反复登录和退出,或者使用ALT + F2来终止和重新启动plasma。所以现在我只需在面板上放一个脚本(设置为可执行)。
点击图标,plasma会在大约15秒左右进行关闭和重启。在plasma重新启动时,我仍然可以使用当前正在使用的虚拟桌面上的打开的程序。

咯咯字节让我笑了 - 0xLogN