![Mac 上的空白终端(无响应)](https://linux22.com/image/1309760/Mac%20%E4%B8%8A%E7%9A%84%E7%A9%BA%E7%99%BD%E7%BB%88%E7%AB%AF%EF%BC%88%E6%97%A0%E5%93%8D%E5%BA%94%EF%BC%89.png)
我在互联网上看到过很多这样的案例,解决方法是(可选:执行_____然后)重启。重启是唯一必要的步骤,但我想删除该步骤(找到问题的根源)。以下是症状:
- 当我打开 Terminal.app 时,除了光标外什么也看不到。没有错误文本。
- 当 SSH 连接时,我会
Timeout, server xxx.xxx.xxx.xxx not responding
经过一段时间的延迟。 - 活动监视器中有很多
sshd
进程正在运行(超过 30 个)。杀死它们没有任何作用。 - 重新启动可以解决问题,但重新启动 Terminal.app 则不能。
- 在系统首选项中重新启动远程登录没有任何作用。
- 当我打开一个新终端时,控制台日志没有显示任何重要的内容。
我只是在寻找一些想法。我知道这没什么用,但也许有人有一个绝妙的想法,知道该去哪里找。我知道这对未来的用户很有帮助,因为我见过很多人遇到这个问题:
- http://hintsforums.macworld.com/showthread.php?t=97005
- https://discussions.apple.com/thread/2204986?start=0&tstart=0
- https://discussions.apple.com/thread/2498920?start=0&tstart=0
- http://forums.macrumors.com/showthread.php?t=1090825
- http://reviews.cnet.com/8301-13727_7-10399809-263.html
谢谢!
答案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
,但我建议只删除最新的日志文件和/或最大的日志文件。