LinuxМакинтош

Устраните неисправности приложений Mac по старинке с помощью сигналов POSIX

Устраните неисправности приложений Mac по старинке с помощью сигналов POSIX

В Activity Monitor есть загадочная опция меню для отправки сигнала процессу . Задумывались ли вы, что это было? Если вы выберете его, вы увидите непонятные термины, такие как SIGINT и SIGHUP , которые не совсем проясняют ситуацию. Так что же это за сигналы?

Разблокируйте бесплатно «100+ Essential Windows CMD Commands» сейчас!

Это подпишет вас на нашу рассылку

Введите адрес электронной почты

Эти сигналы являются результатом основ Unix в основе macOS. В терминал встроены некоторые из этих сигналов: когда вы нажимаете Ctrl + C, чтобы остановить запущенную команду, вы посылаете процессу SIGINT прерывание и остановку текущей выполняемой команды. Они были одним из первых способов взаимодействия приложений друг с другом и являются частью старых стандартов «Переносимый интерфейс операционной системы» (POSIX).

Хотя приятно понять основы работы вашей системы, вы также можете использовать эти сигналы для сбора информации о ненадлежащем поведении приложений.

Что такое POSIX?

POSIX является базовым стандартом для операционных систем Unix и Unix-Like. Среди этих совместимых систем — macOS, созданная для совместимости с Unix. По своей сути это Дарвин, ядро ​​Unix с корнями, восходящими к NeXTSTEP. Это сам по себе был форк BSD, один из оригинальных вариантов Unix.

POSIX гарантирует, что все эти операционные системы обрабатывают код ожидаемым образом, что позволяет разработчикам знать, что их код действительно переносим. Когда они отправляют один из этих сигналов на другой компьютер процессу, данные, которые они возвращают, находятся в формате, который они могут предвидеть и обрабатывать. Это грубое упрощение истории компьютерных вычислений за 40 лет, но вы получите общее представление.

При взаимодействии с самыми простыми демонами, составляющими основу MacOS для Unix, эти сигналы являются лучшими. Демоны — это фоновые процессы, которые запускают основы вашего компьютера — или, на обычном языке macOS , сервисы. Печально известное открытие является примером. Это была замена OS X Yosemite 10.10 для mDNSResponder , другой службы, обвиненной в проблемах сети в этом обновлении.

Командная строка
Имиджевый кредит: Доминик Русецки через Freeimages

В зависимости от способа, которым приложение предназначено для приема сигналов, вы можете отправить сигнал о выходе из приложения, чтобы создать то, что называется дампом ядра. Основные дампы содержат все текущие данные о работающей программе. Это важно для устранения неполадок приложений, которые постоянно сбой. На Mac это дамп в формате файлов Mach-O, который вы можете прочитать в среде разработки macOS под названием Xcode. Большинство пользователей, вероятно, мало что с этим сделают, но если вы разочарованы проблемой приложения, их может быть полезно отправить разработчику для поддержки.

Здесь есть еще немного классических вычислений, показывающих его корни. Формат файла Mach-O делится своим именем с микроядром Mach. Наряду с BSD, это часть корней macOS, и они являются частью базового ядра XNU. Mach не такой легендарный, как BSD, поэтому он не получает много прессы, но является частью того, что отличает операционную систему Apple от других вариантов Unix.

Так как я могу использовать их?

Мы все были там раньше: вы получаете обновление для приложения или загружаете новое приложение. , и он зависает при каждом открытии. Вы открываете принудительный выход из меню Apple и видите, что приложение отображается как не отвечающее . Хуже того, это какой-то фоновый процесс, тянущий вашу систему вниз.

Монитор активности

Откройте Activity Monitor и нажмите на процесс, который не отвечает. Затем перейдите в меню « Вид» и выберите « Отправить сигнал на обработку» . Появится меню, в котором вы сможете выбрать, какой сигнал отправить процессу, выбрать ваш сигнал и нажать Отправить .

Если вы предпочитаете Терминал , вы будете использовать команду, с которой вы уже знакомы. Команда kill используется для остановки процесса. Если вы добавите -s вы можете добавить число, чтобы отправить сигнал процессу, который вы убиваете. Вот список из списка общих команд на странице man kill :

  • 1 — HUP (повесить трубку)
  • 2 — INT (прерывание)
  • 3 — ВЫЙТИ (выйти)
  • 6 — ABRT (отменить)
  • 9 — KILL (неуловимое, неуязвимое убийство)
  • 15 — ТЕРМИН (программный сигнал завершения)

Есть и другие сигналы, которые вы можете отправить, это только самые распространенные. Здесь представлен полный список кодов .

Когда я использую их?

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

Если приложение написано для создания этих дампов, вы найдете их в каталоге /cores что облегчает поиск этого каталога при получении данных для сбойного или зависшего приложения. Вы можете проверить здесь и посмотреть, какие дампы находятся в каталоге, используя команду ls -a . Это покажет вам все файлы в этом каталоге, после чего вы сможете скопировать их в более доступный каталог с командой mv filename destination .

В Терминале используйте command cd /cores для переключения на каталог, затем ls -a для просмотра содержимого. Чтобы переместить файл в папку «Документы», просто используйте mv filename /Users/username/Documents (заменяя имя файла и имя пользователя ).

mackeyboard
Кредит Фотографии: Эрика Варга через Freeimages

Если вы давний пользователь Unix, который перешел на Mac, какие еще малоизвестные функции существуют? Если вы заинтересованы в проверке проекта, в котором используется только основа MacOS с открытым исходным кодом, ознакомьтесь с PureDarwin. Дайте нам знать, как это получилось в комментариях. Мы также хотели бы услышать, когда сигналы POSIX решили проблему с вашим Mac.

Вы использовали сигналы POSIX для устранения неполадок раньше?

Кредиты изображений: Дин Дробот / Shutterstock

Похожие посты
Linux

8 лучших окружений рабочего стола Linux

AndroidIphone и ipadLinuxWindows

Окончательное руководство по включению темного режима везде

LinuxКак сделать

Что такое Swappiness в Linux? (и как это изменить)

LinuxКак сделать

Как использовать команду ls для вывода списка файлов и каталогов в Linux