9

Я использую Mac OS X версии 10.6.3, и когда я открываю терминал (с помощью Terminal.app или iterm), он просто зависает в процессе входа в систему. Я попытался перезапустить компьютер, изменив команду запуска на /bin /bash и удалив файл настроек терминала. Все безрезультатно.

4 ответа4

6

У меня была похожая проблема.
В моем случае Терминал остановится, сказав в заголовке «Terminal - login - 80x24».

Я не хотел переустанавливать Терминал с диска OS X, поэтому я выполнил несколько разных процедур, и в итоге одна из них, похоже, сработала. Я не уверен, что является наиболее важным, но я решил поделиться своими точными шагами на случай, если кто-то посчитает их полезными:

1. Переместить com.apple.Terminal.plist от ~/Library/Preferences/ .

com.apple.Terminal.plist

Некоторые сообщают, что файл конфигурации терминала может быть испорчен и препятствовать запуску приложения.
Переместите этот файл куда-нибудь для резервного копирования, выйдите из Терминала и запустите его снова.

В моем случае сброс настроек изменил настройки шрифта и цвета на настройки по умолчанию, но проблема осталась. Если это так, перейдите к шагу два:

2. Попробуйте запустить оболочку, отличную от bash

изменение оболочки, используемой терминалом

Несколько советов, чтобы изменить оболочку по умолчанию в Терминале на /bin/zsh и перезапустить Терминал, чтобы посмотреть, связана ли проблема с bash. В моем случае это ничего не изменило, и терминал все равно зависал бы при login в систему .

3. Попробуйте переместить файлы .bash* из домашнего каталога

Я вспомнил, что во время предыдущего сеанса я создал файл .bash_profile в своем каталоге. Возможно, что-то действительно не так с этим. Если вы не создали его самостоятельно, какой-то установщик мог бы создать (или отредактировать) его, особенно если программное обеспечение не относится к Mac OS.

К сожалению, Finder не показывает скрытые файлы по умолчанию и не предоставляет простой способ сделать это. Однако в моем случае я обнаружил, что Automator действительно может успешно выполнять команды bash:

перемещение файлов Bash с помощью Automator

Это скрипт, который я использовал:

cd ~

mkdir backup
for F in .bash*
do
    mv $F backup
done

Он переместил все файлы, начиная с .bash в моем домашнем каталоге, в подкаталог backup .

4. перезагружать

Перезапуск приложения у меня не сработал, но я решил попробовать перезагрузить компьютер.
После перезагрузки Терминал работал. Вуаля!

Я переместил сохраненный com.apple.Terminal.plist вернулся в ~/Library/Preferences/ , заменив текущий, и решил не восстанавливать старые (и отчасти не слишком полезные) файлы .bash* и удалил backup каталога.

Я не знаю, было ли это совпадением или комбинацией конкретных шагов, которые решили проблему, но я рад, что Терминал снова работает, и я надеюсь, что и вы тоже это сделаете.

Терминал снова работает

4

Возможно, у вас есть ошибка в вашем файле .bashrc ... Вы можете попробовать вставить в ваш .bashrc операторы echo, или удалить его, или попробовать tcsh вместо bash, чтобы увидеть, в этом ли проблема ...

1

Если текущий процесс на самом деле является "входом в систему", это обычно означает, что вход в систему ожидает создания сеанса входа в систему и еще даже не пытался запустить оболочку. Чтобы убедиться в этом, посмотрите в Activity Monitor и посмотрите, работает ли оболочка или вы видите только процесс входа в систему. Обратите внимание, что если у вас открыты другие терминалы, вы можете увидеть другие процессы "входа" и оболочки для них, поэтому будьте осторожны с тем, какие процессы вы проверяете. Неисправный процесс обычно самый последний с наибольшим номером идентификатора процесса (PID).

Я понимаю, что Марк Шимански сказал, что перезагрузка в его случае не помогла, но я подумал, что должен все же упомянуть об этом: если он действительно застрял в "логине", наиболее распространенная причина - вы запустили "sudo", а затем закрыли терминал пока он ждал, пока вы введете свой пароль. Если вы сделаете это, sudo будет ждать пароль вечно, и это блокирует все входы в систему, пока вы не уничтожите процесс sudo. Самый простой способ решить проблему - это перезагрузить компьютер. Кроме того, вы можете убить sudo из Activity Monitor (или из другого терминала, если он у вас уже открыт). Начиная с Mac OS X Lion 10.7, sudo будет замечать, когда терминал отключается и перестает ждать пароль, поэтому эта проблема больше не должна возникать.

Еще одна причина задержки входа в систему - это если вы подключены к сети Open Directory, а сервер каталогов работает медленно или не отвечает. Сообщите об этом вашему сетевому администратору. Обычно это вызывает задержки в несколько секунд, но в некоторых случаях они могут длиться до нескольких минут.

0

Проблема не в оболочке или сети. Удалите файлы * .asl:

sudo rm -rf /private/var/log/asl/*.asl

Это требует времени, потому что он запускает новую оболочку. Но после этого все снова работает нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .