Mac 上的空白终端(无响应)

Mac 上的空白终端(无响应)

我在互联网上看到过很多这样的案例,解决方法是(可选:执行_____然后)重启。重启是唯一必要的步骤,但我想删除该步骤(找到问题的根源)。以下是症状:

  • 当我打开 Terminal.app 时,除了光标外什么也看不到。没有错误文本。
  • 当 SSH 连接时,我会Timeout, server xxx.xxx.xxx.xxx not responding经过一段时间的延迟。
  • 活动监视器中有很多sshd进程正在运行(超过 30 个)。杀死它们没有任何作用。
  • 重新启动可以解决问题,但重新启动 Terminal.app 则不能。
  • 在系统首选项中重新启动远程登录没有任何作用。
  • 当我打开一个新终端时,控制台日志没有显示任何重要的内容。

我只是在寻找一些想法。我知道这没什么用,但也许有人有一个绝妙的想法,知道该去哪里找。我知道这对未来的用户很有帮助,因为我见过很多人遇到这个问题:

谢谢!

答案1

如果即使等待几分钟也未启动终端会话,则最常见的原因是用户在sudo等待密码时关闭了终端。在 Mac OS X 10.7 Lion 之前的系统上,这会阻止任何进一步的登录,直到您重新启动或终止该sudo进程。使用活动监视器查看是否存在sudo进程,如果有,则强制退出以解决问题。

在这种情况下,首先要做的是查看终端检查器(Shell > 显示检查器) 查看终端中正在运行哪些进程。如果您看到 shell 或除此以外的任何程序,login则表示登录已完成。在这种情况下,问题很可能是由于 shell 启动文件中的某些内容造成的。

如果需要花费几秒钟或一两分钟才能启动终端会话,因为login需要一段时间并且您处于具有网络用户帐户的网络上,则这可能是由于目录服务器速度慢或无响应(或更罕见的是网络通信不稳定)造成的。

另一个可能导致login花费更长时间的问题是,如果系统日志包含过多的日志数据;login读取日志以查找上次登录的日期/时间,以便显示“上次登录:...”横幅,可能需要几秒钟的时间。如果存在某些系统问题或特定程序导致快速生成数千个日志条目,则有时会发生这种情况。可以通过删除在 中找到的任何大型系统日志文件来解决此问题/private/var/log/asl/。有些人只是用 删除所有内容rm -rf /private/var/log/asl/*.asl,但我建议只删除最新的日志文件和/或最大的日志文件。

相关内容