У меня есть приложение на OSX, которое постоянно переходит в состояние «Не отвечает» и должно быть принудительно уничтожено. Я надеялся автоматизировать его, но при проверке процесса с помощью ps я не вижу ничего, что соответствовало бы состоянию Not Responding. Я посмотрел на индикатор состояния , но приложение показывает как S , отвечает ли он или нет.
состояние Состояние задается последовательностью символов, например, `` RWNA ''. Первый символ указывает на состояние выполнения процесса:
- I Отмечает процесс, который простаивает (спит дольше, чем около 20 секунд).
- R отмечает исполняемый процесс.
- S Отмечает процесс, который спит менее 20 секунд.
- T отмечает остановленный процесс.
- U отмечает процесс в непрерывном ожидании.
- Z отмечает мертвый процесс ("зомби").
Как определить, не отвечает ли процесс, как это делает Менеджер активности?
Я также открыт для решений AppleScript.
Вот AppleScript, использующий сценарии пользовательского интерфейса, который ищет не отвечающий процесс и убивает их.
Он будет работать с монитором активности Mavericks. Но так как это сценарии пользовательского интерфейса и пользовательский интерфейс Activity Monitor изменился, он, скорее всего, не будет работать со старой OS X без каких-либо незначительных изменений.
источник
tell radio button 1 of radio
. Я удалил это и настроил некоторые другие вещи (я только хочу убить определенную программу) и получил ошибку времени выполнения: 'ошибка' Системные события получили ошибку: доступ для вспомогательных устройств отключен. " номер -1719 из окна 1 процесса «Монитор активности» 'tell radio button 1 of radio group 1 of group 2 of toolbar 1 of window 1 to click
(Размещать это как отдельный ответ, так как слишком долго, чтобы уместиться в комментарии)
Благодарим @MatthieuRiegler за оригинальный сценарий.
Это сработало 10.12.6 и является незначительной модификацией оригинального сценария (см. Комментарий @ CharlieGorichanaz после того, как я провел собственное расследование):
** 1 В macOS 10.12.x панель инструментов содержит дополнительныйзначок, благодаря которому
group 2 of toolbar 1
вместокнопок используется набор кнопок (CPU, Memory, Energy и т. Д.)group 1 of toolbar 1
. В отсутствие этого значка (я не подтвердил в старых версиях macOS), я думаю, что кнопки CPU и т. Д.group 1 of toolbar 1
** 2 Это применимо, если вы когда-либо перетаскивали столбец PID в столбце Activity в другую позицию. Я перетащил столбец PID в крайнее левое положение, поэтому в этой строке мне пришлось изменить индекс на
1
:Столбцы пронумерованы слева, начиная с 1. Поэтому при необходимости измените подсвеченный индекс в строке выше.
источник