从 tty 退出 [干净] GUI 应用程序的命令?

Vis*_*ish 6 command-line

在运行 alpha/beta Ubuntu 时,我经常遇到 X 冻结的问题,我必须重新启动 X。

在此冻结期间,我可以切换到 tty 并关闭程序。我要么使用 top 并杀死正在运行的应用程序 [evolution/firefox/etc,..],要么使用 killall 命令。

但是当我使用这些 kill 命令时,应用程序会突然关闭,并且在下一个会话中打开时它会“恢复”。例如:Firefox 需要恢复我正在查看的所有网页,因此如果我打开 20-30 个标签页,它实际上会冻结几分钟。进化不会删除垃圾箱等中的消息。

是否有可以用来从 tty 干净地关闭应用程序的命令?[我经常使用的应用程序是 firefox、evolution、transmission、xchat]

jho*_*nal 5

通知 POSIX 应用程序关闭同时仍有宽限期进行清理的标准方法是向其发送SIGTERM(维基百科链接)信号。该SIGKILL(维基百科链接)信号,而另一方面,杀害,甚至没有给它一个机会收拾应用。

但是……您的两个操作 - 调用top(顺便说一下,我建议您切换到使用htop而不是top)或killall-SIGTERM默认情况下发送信号。

我刚刚测试了启动 Firefox - 并尝试使用SIGKILLSIGTERM. 有了SIGTERM,当我再次使用Firefox 时,我没有收到任何错误或“恢复”消息。随着SIGKILL,我得到了it's embarrassing屏幕。

所以,原因很简单:这些应用程序的 X 实例被冻结了。所有这些 GUI 应用程序都在其 X 实例正常运行的前提下运行。如果 X 被冻结,他们甚至可能无法尝试任何事情。

解决问题的方法是确定 X 冻结的原因,并防止这种情况发生。

编辑:啊,抱歉 - 刚刚看到您谈论在 X 冻结时使用 Ubuntu alpha/beta。在这种情况下……我会说这是运行 alpha/beta 的兴奋的一部分。尝试了解它为什么会冻结,写入/添加到错误报告中。为了加快 Firefox 在这些方面的启动,只需告诉它在重新打开时不要重新加载相同的选项卡。(您仍然可以在历史记录中找到这些标签)。对于其他应用程序,它们的清理操作相当简单——它们没有发生应该不会花费太多。