У меня программы зависают не так часто, и в большинстве случаев падаем ModoDevelop, XCode, MAMP или Word. Как видишь большинство из этого относится к программированию. О зависании Microsoft Word я уже писал, у него есть прямо болезнь какая-то при вставке текста. Я в Word очень часто пишу тексты для заметок, а потом с помощью Command+V расставляю теги типа <p>. Проблема в том, что при выполнении Command+V иногда Word зависает. Его убивать достаточно просто, достаточно нажать Option+Command+Esc (почти аналог Ctrl+Alt+Del), появляется окно выбора программы, выбираем Word и нажимаем Force Quit.
Среды разработки – ModoDevelop и XCode, просто падают. Они не зависают, а вылетают с ошибкой. Так что их убивать не приходится. Ну а MAMP иногда зависает при перезагрузке компьютера. Это бесит, потому что это останавливает процесс перезагрузки и никаких предупреждений. Просто перезагрузка не идет. В первый раз я начал методом тыка убивать программы и после того, как убил MAMP, перезагрузка пошла без проблем.
Проблема MAMP в том, что если это происходит, то MaxOS уже забывает те программы, которые он закрыл до косяка с MAMP и после перезагрузки восстанавливает только те окна, которые он закрыл уже после начала второго этапа перезагрузки (после убийства MAMP). В принципе, это происходит редко, и если я не забываю, то я еще и выгружаю MAMP до начала перезагрузки, поэтому проблема не сильно страшная.
Но вот вчера впервые столкнулся с зависанием процесса, а не программы. Я как программист работаю с XCode и балуюсь с iPhone программированием. Вчера наткнулся на косяк, когда эмулятор iPhone стал игнорировать любые запуски программы примера, с которым я работал. Запускаю пример, а он вылетает с ошибкой SIGABRT.
Полез на закладку Debug, чтобы увидеть, что там произошло, а мне говорят, что ошибка SIGABRT может возникать, если программа уже выполняется в системе, и ОС не может запустить еще один процесс. Оки, начинаю искать кто может выполнятся. В окне терминала вбиваю:
ps –el | grep 'Z'
и вижу, что действительно, в системе есть зомби моего процесса. Эмулятор не смог убить его по какой-то причине и теперь он висит в системе. Пробовал убить процесс с помощью:
kill PID kill -9 PID
Без результата. Процесс просто не реагирует и система его не убивает. Причем не говорит при этом совершенно ничего. Я сначала подумал, что у меня не хватает прав, но из под sudo не убивает тоже. Только полная перезагрузка помогла. Неприятный косяк. Если это будет происходить часто, то меня это не обрадует.
Пробовал воспроизвести ошибку, и получается, что при запуске OpenGL приложения, если не нажать в эмуляторе кнопку выхода, а снять задачу из XCode или попытаться запустить приложение из XCode еще раз, то оно запросто остается в памяти и XCode начинает показывать ошибку SIGABRT. Сегодня попробовал несколько раз запускать приложение и выходить из него прежде чем запускать его еще раз и пока зависонов не видел.
Интернет говорит, что народ начал часто наталкиваться на такие проблемы после перехода на последнюю MacOS и на XCode 4. Конкретной таблетки я не встречал, но удивлен, что косяк не исправлен до сих пор. Проблема явно в эмуляторе. Да и удивлен, что снять процесс не удается. Все пишут, что им приходится перезагружать полностью систему. Говорят, что если зомби процесс виден в программе Activity Monitor, то его можно убить в командной строке или в той же программе Activity Monitor. Если монитор его не видит, то лекарством становится перезагрузка.
Сейчас экспериментировать с процессами времени нет, буду корректно выходить из программы перед обновлением эмулятора, но если еще раз процесс умрет, буду дальше разбираться, почему он неубиваем.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Зомби же нельзя убить, он и так уже умер и спасет только reboot) Или я не прав?
Михаил, скажи, а тебе удалось включить проверку грамматики в Word для MacOS?
Судя по интернету, зомби процессы убивать можно и нужно. Нужно убить родительский процесс и зомби должен умереть сам. Мне постоянно приходится работать с cron и работы регулярно падают. Много раз убивал процессы, но ни разу не перезагружал систему.
Я буду очень сильно удивлен, если в MacOS зомбиков убивать нельзя. В наше время, когда космические карабли бороздят галактику, убивать какие-либо процессы перезагрузкой - смешно.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.