以下适用于 Lucid 10.04
它发生在我的“真实”计算机以及VirtualBox VM 中......
(更新)我刚刚将 Maverick 10.10 安装到虚拟机上......几乎同样的事情发生了!
我确实有键盘控制(最初),但我可以退出终端的唯一方法是在进程仍在运行(或 Ctrl+C)的情况下关闭它,这会导致锁定(按 Enter 不会将其带回提示符)
$ metacity --replace
上述命令(在终端中)每次都会导致我的系统挂起。
该命令不会返回到提示符。
窗口装饰消失(可能是因为命令尚未完成?)。
键盘无法使用,(但鼠标仍然可以使用)...
但是,以下命令每次都能正常工作。
$ (metacity --replace &)
$ metacity --replace & # this works too
它可能仅在我松开键盘时“挂起”,因此无法按 Enter 将其带回提示符,(...正如我所注意到的,一些不相关的命令并非“完全”返回提示,直到我按 Enter)
这里发生了什么?
我的“主机”操作系统不是新的,但虚拟机处于全新状态(几乎)......而且他们都表现出这个键盘“锁定”。
按 Enter 不会返回到终端提示,因为 metacity 正在该终端中运行。metacity 产生的任何警告/错误消息都将在那里打印。这是任何 GUI 应用程序的标准行为。如果您不希望他们接管您的终端会话,请使用“&”。
关于其余的——消失的窗户装饰等等——我自己也很困惑。
运行
metacity --replace
不会使它作为守护进程运行。如果您按 Ctrl-C 或以其他方式停止该 metacity 进程的运行(关闭终端也会这样做),您将没有窗口管理器。这就是你失去窗户装饰的原因。我不确定为什么键盘停止工作(我的猜测是,一旦关闭窗口管理器,窗口的新更新,比如打字,就不会被绘制到屏幕上),但我已经测试过了,如果你按下 Ctrl +Alt+F1 你仍然可以拖放到帧缓冲区。很明显,键盘并没有完全停止工作,事实上,如果你点击一个菜单项,gnome-terminal
你可以使用向上和向下箭头来导航它。您应该在包装器中运行 metacity,例如
screen
,当您需要从终端启动它然后关闭您使用的终端窗口时。只需运行screen metacity --replace
并按 Ctrl+A+D 即可从screen
进程中分离。