在 Ubuntu 20.04 中是否有与 Alt + F2 + 'r' + Enter 相对应的重新启动 GNOME Shell 的确切命令?

在 Ubuntu 20.04 中是否有与 Alt + F2 + 'r' + Enter 相对应的重新启动 GNOME Shell 的确切命令?

除了使用Alt+ F2R+之外,还有其他方法可以重新启动 GNOME Shell 吗Enter

关于这个问题,我已经经历过gnome-shell --replace 和 Alt+F2 中的 r 之间的区别,但我没有得到我想要的东西。

我正在寻找一个能够准确执行Alt+ F2r+Enter功能的命令。

请注意,我不愿意执行该gnome-shell -- replace命令......

我确实检查了这两件事Alt+ F2r Enter并且gnome-shell --replace......
我发现有很多区别......

答案1

执行此操作的命令是(仅在 Ubuntu 20.04 中测试

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Meta.restart(_("Restarting…"))'

在此处输入图片描述

答案2

作为Diego F. Rodríguez V. 提到,没有办法从终端访问它。但是,

killall -3 gnome-shell

非常接近,并保持您的活动会话完好无损。它会发送一个 QUIT 信号 (SIGQUIT),并且由于 gnome-shell 设置为在 X 启动时自动启动,因此它在技术上会执行类似操作。

kill -SIGQUIT PID
kill -3 PID
kill -QUIT PID

也可以这样做,但它需要一个 PID(进程 ID)作为参数,可以通过以下方式找到

ps x | grep "gnome-shell"

答案3

我还想以编程方式重新启动 gnome shell,因为 Ubuntu 19.10 中似乎存在某种内存泄漏。gnome-shell开始消耗 200 MB 多一点,但使用几个小时后就会达到 900 MB 多一点。

alt+f2,r,enter优雅地解决了这个问题。出现一条小的“重新启动”消息。变化几乎不可察觉,所有窗口都保持其位置,正在运行的程序保持其状态。只有桌面背景在重新加载时似乎闪烁。

当使用gnome-shell --replace某些程序时,它们中的所有工作都会丢失,幸存的窗口可能会改变其位置,并且屏幕的几个部分似乎被重新绘制。我也尝试过,killall gnome-shell结果类似。

不幸的是,我认为没有办法从命令行访问此功能,因为它深深嵌入在 gnome-shell 代码中运行对话框对象:

gnome-shell > js > ui > runDialog.js [37]

this._internalCommands = {
    'lg': () => Main.createLookingGlass().open(),
    'r': this._restart.bind(this),
    ...

答案4

对我来说最有效的方法是调用Cinnamon 源代码。适用于 5.4.10。也不会提示回退模式。

dbus-send --type=method_call --dest=org.Cinnamon /org/Cinnamon org.Cinnamon.Eval string:"global.real_restart()"

相关内容