Расскажу-ка вам историю из загробного мира :-)
Мак – отличная штука. Живой работающий пример всего того, что, согласно фольклору линуксоидов, либо не существует, либо нормально работать не может. Однако же вот он, живой, работает – а мы в линуксе все еще двачуем капчу на последний коммит в репе systemd, обсуждаем какие-то психически неуравновешенные темы вроде «predictable names» для сетевых интерфейсов, итп.
Но иногда здесь случаются абсолютно невероятные вещи. Например, фаервол, привязанный к гую.
Сегодня логинюсь на макмини (оживленный дабы кодить в гостиной на большом экране телевизора)... И сразу после логина его интерфейс виснет. Висит трей, висит док, висят скайпы и джаберы. Программы запускаются, но очень мало какие.
Перезагружаюсь – снова виснет. Тогда начинаю долбить killall -KILL SystemUIServer («перегрузить всю графику нафиг»), и несколько секунд после этого система работает, потом снова виснет.
В ходе перезагрузок была выяснена интересная особенность. Когда система «висит», также не работает http и пинги на яндекс. Иногда проходят, но в 99% случаев интернета нет. Сразу после -KILL SystemUIServer пару секунд в Сафари-Хромиуме грузится гуголь и начинают ходить пинги на яндекс, но потом соединение снова пропадает.
Следующий вывод не укладывался в мою картину мира, поэтому делал его минут 10 точно.
Во всем оказался виноват фаервол. Вот этот: http://ompldr.org/vaTBxYQ/2013-04-07 10.26.09 pm.png
Казалось бы, как может быть фаервол быть связан с графическим сервером? Это же совсем-совсем разные сущности?
У него слетел конфиг, и как-то криво стал загружаться его демон.
А с криво запущенным демоном –
1) криво работает его гуй. А гуй встраивается в трей, и убивает его загрузку. Причем забавно, он убивает только те программы, что пытаются попасть в трей после него, а вот своя собственная иконка в трее у него работает ОК. Убитый трей не позволяет стартануть программам, которые при старте пытаются с ним что-то сделать (т.е., почти всем программам).
2) криво работают правила фильтрации, которые решили «заблокировать почти все». Замечатльный фаервол блокирует не только сетевые соединения (прощай скайп и адиум), но и доступ на чтение-запись файлов (прощай все остальные программы). Ну слава б-гу, хоть zshell-у возможность читать конфиг не заблокировал, и он не завис как все остальные скайпы – так появилась возможность открыть терминал.
После этого я попытался удалить фаервол стандартным способом (удалить его директорию из /Applications), но это оказалось невозможно, т.к. файлы заблокированы, и очень быстро переблокируются заново.
Тогда я попытался убить фаервол из списка процессов, но у него оказалось там дофига (как минимум два) разных процесса, которые перезапускают друг друга. Убил демона - его поднял агент, убил агента - его поднял демон. Дело Робина Гуда и Монаха Тука живет :-) Можно было бы проверить, как выдаются пиды на новые процессы (по порядку, наверное), и написать какой-то скрипт для убивания пачкой, но это показалось слишком геморно при наличии других вариантов. Плюс, а что если это не процессы друг друга оживляют, а просто стоит какой-то системный хук (в маке такое вообще возможно - поставить хук на отсутсвие признака?)
Пошел перегружаться в безопасном режиме, но, ВНЕЗАПНО, мак отказался грузиться в нем. Сразу после проверки диска – ноль реакции в течение часа. Т.к. «безопасный режим» не реагирует на шифт и флаг ядра -v (выставленный через sudo nvram boot-args="-v"), даже узнать что там творится нельзя. Переключалок в виртуальные консоли, по F-кам, как в линуксах, там нету. Вообще, невозможность загрузиться в безопасном режиме – это палево какое-то, опасно на таком компе что-то делать. Поэтому в тред кастуется специалисты по всему – можете посоветовать, что тут можно сделать, без использования радикальных мер? Хотелось бы глянуть хотя бы на лог ведра.
Ну в общем, я уже был готов применять радикальные методы, как-то разборка корпуса, вытаскивание жесткого диска, втыкание его в линукс и rm -rf /*, но тут обнаружил, что фаервол можно удалить из его же главного меню. Прямо в юзерском режиме, выбрав пункт uninstall. И потом с двумя перезагрузками можно накатить более новую его версию, которая более хорошо совместима с последними обновлениями макоси.
Вот такая вот история.
Источник: http://users.livejournal.com/__hedin/503131.html
Скрин того самого гуя: http://ompldr.org/vaTBxYQ/2013-04-07 10.26.09 pm.png