1

После установки MySQL 5.1.50 64-bit и запуска пакета, который настраивает MyQL для запуска при запуске, приложение Terminal теперь время от времени отображает пустое окно, например:

альтернативный текст

Мне удалось получить командную строку обратно после следования инструкциям из столбца MacFixIt на CNET: OS X Terminal отображает пустое окно вместо командной строки

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

5 ответов5

4

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

Решение состоит в том, чтобы убить процесс "sudo" с помощью Activity Monitor.

Я полагаю, что sudo было исправлено в Mac OS X Lion 10.7 для выхода, если вы закроете терминал.

0
  1. Запустить монитор активности
  2. Выберите «Все процессы, иерархически»
  3. Ищите свой Терминальный процесс
  4. Попробуйте определить процесс, который может "зависнуть" и мешать входу в систему.

Или же:

  1. запустить fg в каждом активном окне оболочки

В моем случае, как-то в одной из моих оболочек была вставлена git diff head , так что git и less появились под оболочкой, в которой я думал, что это был просто процесс bash. Когда я сделал fg это решило проблему. Если большинство ваших окон / вкладок просто «логин -> bash», это должно быть легко обнаружить.

0

На самом деле я обнаружил, что проблема для меня связана с зависшим процессом входа в систему. Следуя приведенному выше предложению, я не увидел ни одного процесса sudo в списке из Activity Monitor, но заметил множество процессов входа в систему, принадлежащих root. Я прошел и начал убивать их, и один из них что-то вызвал, и приглашение вернулось в iTerm для меня. Мне удалось избежать перезагрузки машины.

0

Попробуйте запустить jobs в Терминале, чтобы увидеть, есть ли в этой оболочке дочерние процессы в фоновом режиме. Если на заднем плане работает что-то сверхтяжелое, возможно, это приводит к тому, что оболочка перестает отвечать на запросы?

0

У меня точно такая же проблема, хотя она возникла после установки Git (или, по крайней мере, тогда я заметил проблему).

Я открыл Монитор активности и выбрал, чтобы показать все процессы. Я заметил, что root запускал несколько (> 10) процессов login , несколько процессов sh и процесс sudo . Я принудительно завершил их все, хотя некоторые процессы login не прекратились - возможно, sudo не давало им повиснуть. После этого Терминал работал нормально, и чрезмерные процессы login я не мог убить, прекратились.

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

Упомянутая вами статья CNet хороша в крайнем случае.

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