我如何从tty重新启动Cinnamon?

我在我的Ubuntu 12.04上安装了Cinnamon,它运行得很好,但有时候会无缘无故地冻结。我可以移动鼠标,但无法点击任何东西。
所以我想从tty重新启动Cinnamon,就像我以前在gnome shell中做的那样。我该怎么做?
我尝试了"killall cinnamon",但没有任何反应。
然后我尝试了"export DISPLAY=:0.0","cinnamon --replace",但仍然没有任何反应。
我猜测命令"cinnamon"是无效的。 我不想重启整个X服务器,因为这样会关闭所有窗口。我只想重启窗口管理器,因为我相信它是问题的原因。
21个回答

按下 Alt+F2,输入 r 并按回车键。

这是正确的答案。对我起作用了(Deb.7)。 - Stichoza
12在我的情况下,Cinnamon完全冻结了,不对Alt+F2做出任何响应。 - levesque
57这是完全错误的,因为问题是“[...] 来自 tty 吗?” - Lucas
6我完全同意@Lucas的观点,但我暂时不会投票反对,只是因为这是一个非常有用的快捷方式,即使不是从OP描述的tty中。虽然在cinnamon没有正常运行的情况下,它可能会奏效。 - mc0e
我也同意,但我在寻找“Debian重新启动Cinnamon”的解决方案时,谷歌给我显示了这个方法,并且对我有效。所以+1。 - vladkras
Linux很棒。 - Nicholas DiPiazza
不适用于Mint 17 Cinnamon。只是一个错误,找不到“r”命令。 - kmarsh
1@kmarsh 一个更新应该解决这个问题。在Mint 18 Cinnamon上运行,并且省去了安装额外小程序的麻烦,因为这个功能很少使用。由于某些小程序需要在安装后重新启动Cinnamon,所以这确实是一个非常有用的快捷方式 - 尽管我完全同意这不是OP想要的答案。在谷歌搜索“重启Cinnamon”时的第一个结果,所以+1并让它保留 :) - Izzy
@Izzy:确实,现在可以了。+1。 - kmarsh
按下Ctrl + Alt + Escape,不要忘记为这个人的答案投票:https://askubuntu.com/a/1006795/400409 - maxkoryukov
1按下Alt + F2可能也会起作用,即使它没有显示出来(当一些进程被冻结时会发生这种情况)。只需按下Alt + F2,然后按下"r",然后按下ENTER键,通常就能完成任务,即使没有可视化的反馈。 - undefined

进程可以接收到 HUP 信号,这将触发它重新启动,从而保留您打开的窗口和正在运行的应用程序。
$ pkill -HUP -f "cinnamon --replace"

这将负责向与模式"cinnamon --replace"匹配的进程发出HUP信号。HUP信号(SIGHUP)告诉进程"挂断"。

1这是我用过的第一个解决方案,没有任何不良副作用。对于那些不知道的人来说...如果你无法启动终端,请按Alt+F2进入TTY,使用具有管理员权限的帐户登录,成为root用户,然后输入该命令。你可能需要按Alt+F[n]返回到你的X TTY界面。 - aggregate1166877
cinnamon --replace 进程是做什么的? - Seanny123
@Seanny123 - 重新启动了Cinnamon,但是用一个新的替换了当前的。 - slm
啊,所以这个过程卡住是因为试图替换现有的肉桂实例,导致了冻结,这就是为什么我需要终止它的原因? - Seanny123
@Seanny123 - 桂皮被悬挂起来,替换触发重新启动,但保留所有后续的“子”部分不变。 - slm
据我所知,通常使用Ctrl+Alt+F[n]来切换tty-s。此外,耐心可能会有所帮助 - 今天在冻结的界面上花了大约2个小时后,我终于恢复了我的键盘。 - Martian2020

这种情况我也经常遇到,而且当我在谷歌搜索“重启cinnamon”时,这个帖子是排名靠前的结果之一。不幸的是,这些指令对我来说不起作用(只是因为显示编号错误!)。对于未来的访问者,以下是我经常使用的方法。
  1. Cinnamon卡住了
  2. 切换tty。我通常选择tty6,按下Ctrl+Alt+F6
  3. 如果需要先登录,请登录。
  4. 输入w(是的,只是一个字母),然后按回车。这个命令会执行很多不同的操作,但你需要它来找出你正在使用的显示器编号。显示器编号在列FROM中。我的是:0(是的,包括冒号)。
  5. 假设cinnamon已经崩溃(你会注意到窗口没有标题,无法移动不同的窗口,甚至可能无法使用键盘),你可以输入export DISPLAY=:0; cinnamon &,别忘了冒号。我加上&符号只是为了不让该tty保持繁忙状态。
这对我来说总是有效的,而且我不会丢失打开的窗口。 此外,我将这些说明保存在一个名为restartcinnamon的文件中,它只是一个文本文件。我将该文件保存在我的Dropbox文件夹中,所以无论我使用哪台机器,如果需要提醒自己如何操作,我只需键入cat ~/Dropbox/restartcinnamon即可。

完成这个操作后,我的三个屏幕(三个显示器)变成了一个整体。有什么建议吗? - justingordon
修复方法是打开显示面板,然后点击“确定”。有其他解决方法吗?Linux 上的多显示器支持一直存在问题。 - justingordon
2值得注意的是:TTY不会考虑当前的数字锁定状态。曾经花了一些时间困惑地弄清楚为什么我的密码输入错误... - Richard de Wit
以上的方法有效(谢谢!)。我使用两个显示器,我禁用了我的笔记本电脑并使用主显示器通过“disper -S”命令,但在重新启动cinnamon后,屏幕变黑了。我尝试使用“disper -s”(注意这里是小写s,表示主屏幕)切换回笔记本电脑的显示器,结果主显示器反而亮了起来。如果有人正在使用disper,也许可以尝试大写S和小写s的不同变体?我使用Synapse,所以我只需按下Ctrl-Shift-Space(我的热键),然后输入“disper -S”。 - Ian Ozsvald

Cinnamon有一个直接的键盘快捷方式,可以重新启动桌面而不会重新启动任何正在运行的应用程序: ctrl+alt+esc 在某些情况下,当alt+f2方法不再起作用时,这个快捷方式可能仍然有效。

7是的,这就是我想要的! - chaosink
2非常感谢您的帮助。我的Cinnamon处于回退模式,Alt+F2无法起作用,但是Ctrl+Alt+Esc可以解决问题。 - Meowcate
2这是2022年Linux Mint 20.3上最好的答案。 - Marcel Cozma

最简单的解决方案是:
killall -HUP cinnamon

1对我来说完美地运作了。 - Luca Steeb
2这让我退出了现有的Cinnamon会话。 - musiphil
有时候我的系统上的Cinnamon会冻结。当我尝试这个方法(在控制台模式下,按Ctrl+Alt+F1,即使Cinnamon冻结了也能运行),然后返回正常模式(按Ctrl+Alt+F7),Cinnamon会显示一个错误消息说它崩溃了。然后我可以点击“是”来重新启动它(如果我点击“否”,那么我就失败了,需要重新启动),然后一切都恢复正常了。只有使用“按Win+I键反转窗口”的扩展程序反转的窗口不再反转。在Debian 9.11上测试过Cinnamon 3.2.7。 - Fabian Röling

您可以通过以下方式重新启动Cinnamon:
  1. 按下 Alt+F2,输入 r,然后按下 Enter
  2. Ctrl+Alt+Backspace (重启Xorg)
  3. TTY中使用命令:sudo service mdm restart

这是最好的答案,需要更多的赞同票。 - David Parks
1mdm restart将关闭所有打开的会话和窗口。 - user4089
1最新版本的Linux Mint使用lightdm作为显示管理器(DM)。因此,在这种情况下,你可以使用sudo service lightdm restart而不是mdm restart - RyanNerd

当你杀掉cinnamon时,检查它是否停止写入killall cinna并按下Tab。如果剩下的单词出现,用killall -9 cinnamon让它死掉,然后重新启动它,使用你尝试过的方法,但不要加上--replace
export DISPLAY=:0.0; cinnamon

以下是对上述评论的结合,对我起了作用:
  1. 按下Ctrl-Alt F1切换到终端1。如果需要,请登录。

  2. 输入w(是的,只需一个字母"w")以查看您的显示器号码在FROM列中)。对我来说,它是:0(包括冒号)。此外,TTY列将显示您的cinnamon会话的终端号码(对我来说是tty8)。

  3. 输入cinnamon --replace --clutter-display=:0 2> /dev/null &

    关于最后一条命令的说明:

    • :0是我的显示器号码。
    • &返回终端控制权。
    • --clutter-display如果未输入,则使用DISPLAY变量,这就是为什么之前的建议中有EXPORT的原因。但是您也可以直接将参数传递给cinnamon。请参阅cinnamon --help了解更多信息。
    • 2> /dev/null将stderr重定向到空白处,以免我的终端被消息混乱。
  4. 按下Ctrl+Alt+F8返回到我的窗口cinnamon环境(对我来说是F8,因为根据上面的w命令,我的终端是tty8。对您来说可能不是F8)。

总结一下,这个操作让我在我的终端(tty8)重新启动了cinnamon桌面环境,并且没有丢失我的窗口。

我由于HP Envy的图形驱动程序,定期遇到这个问题。

根据情况,我需要执行以下一项或两项操作:

  1. 按照置顶回答和其他建议 - 重新启动cinnamon - 按下ALT+F2,然后按下R,最后按下ENTER。(如果任务栏无响应,窗口实际上没有焦点,单击事件等不起作用时,请执行此操作。例如,您可能在看似具有焦点的窗口中单击或输入,但是实际上位于其后面的窗口接收到了事件 - 这甚至可以完全隐藏在您认为是活动状态的窗口后面)
  2. 切换到虚拟控制台,然后返回X - 按下CTRL+ALT+F1进入控制台,然后按下ALT+F8返回X。(如果整个屏幕无响应 - 至少您看不到任何事情发生 - 这对我来说修复了问题。)

对我来说,这个问题仍然存在 - Linux Mint 17.x - 希望对您有所帮助!


尝试这个
  1. 按下 Ctrl + Alt + F2
  2. export DISPLAY=:0.0; cinnamon --replace

2这个问题非常明确地说明这个方法没有起作用。 - David Foerster