使用 ssh 解冻冻结的 osx UI 而不关闭所有应用程序?

Mot*_*tin 19 mac ssh freeze user-interface macos

我的 mac 偶尔会死机,大多数情况下我只是通过按住电源按钮 5 秒以上来重新启动它。

然而今天,当 UI 完全冻结时,我已经运行了 14 个小时的大型文件扫描,我不想再等 14 个小时!

冻结用户界面的症状: 使用键盘时没有任何反应(大写锁定灯打开/关闭除外)。自然,强制退出不会出现。移动鼠标会移动屏幕上的光标,但单击什么也不做。

使用网络上的另一台 Mac,我可以通过 SSH 访问该 mac。我看到 RAM 几乎已满,但 CPU 活动不大。我试图解冻 Mac 的事情:

  1. 关闭/杀死 Chrome、iMovie、Photoshop 和其他我不关心关闭的应用程序。确实帮助降低了 RAM 使用率,但没有帮助解冻 Mac。

  2. 关闭 Finder 和 Dock 进程。没有帮助。

  3. 从命令行激活屏幕共享并尝试远程连接。密码对话框出现(表明屏幕共享确实已激活)但在提供密码后,进度指示器只是永久旋转,没有任何反应。

  4. 尝试从命令行挂起用户会话:

/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

这个命令只是挂在 SSH 会话中,什么也没有发生。需要使用ctrl+中止c。使用sudo使命令立即返回,没有任何影响。

甚至杀死 WindowServer ( sudo killall -HUP WindowServer) 也没有帮助,运行正常重启 ( sudo shutdown -r now) 只会使计算机完全冻结(不再有光标移动或 ssh 访问)。只有电源按钮强制关闭有效。

必须再等 14 小时才能再次运行文件扫描。有没有其他方法可以在这种状态下解冻 Mac?很高兴知道以供将来参考......

Kev*_*eid 3

我曾经偶尔处理过这种情况,当它是一般的 UI 冻结时,没有一个特定的窗口没有响应,那么我发现没有任何东西(没有可以杀死的进程)可以解决这个问题,除了杀死窗口服务器。这应该会导致会话被注销。

然而,在这种特殊情况下,由于杀死 WindowServer并没有使系统恢复到可用状态,我怀疑它无论如何都是注定要失败的。

关于最佳恢复,需要注意的一件事是可以通过 SSH 彻底关闭单个应用程序:

osascript -e 'tell application "TextEdit" to quit'
Run Code Online (Sandbox Code Playgroud)

正常的 GUI 应用程序在编辑时不会保存其文件等kill,但在给出此退出事件时会保存。当然,如果应用程序在您告诉它退出时弹出一个对话框,则这没有帮助。如果osascript它本身挂起,那么Apple事件调度系统就会挂起......