Как запустить процесс с Objective-C - PullRequest
0 голосов
/ 29 августа 2011

Мне нужно разработать программу Какао, которая будет контролировать конкретный процесс. Если этот процесс занимает менее 50% загрузки процессора, я должен отправить электронное письмо администратору. Конечно, это будет приложение Mac OS X.

У кого-нибудь есть советы или примеры для меня? Я искал в Интернете и ничего не нашел.

Ответы [ 2 ]

3 голосов
/ 29 августа 2011

То, что вы спрашиваете, на самом деле совсем не так просто.

Как сказал CajunLuke, вы захотите воспользоваться преимуществами системы POSIX.

Однако проблема в том,заключается в том, что вам нужно будет взять среднее использование ЦП за некоторое время и усреднить его по нескольким выборкам, потенциально отбрасывая выборки, выходящие за пределы некоторого стандартного отклонения.

Проблема заключается в том, что образец использования ЦПобязательно является средним значением за определенный период времени, и, если этот период времени действительно короткий, то вы иногда будете видеть выборки, которые являются дико низкими (или высокими). ​​

Схватите источник на topкоманда из репозиториев с открытым исходным кодом (я думаю, что top будет в релизах Darwin OSS) и посмотрите на это.

1 голос
/ 29 августа 2011

Поскольку Objective-C является надмножеством C, вы можете использовать любой стандартный метод POSIX C, который вы бы использовали для этого в Linux или другой UNIX.

Один из способов (не очень хороший) - вызвать ps или top и затем обработать результат.

Если у вас уже есть * nix приложение или скрипт, который это делает, он должен работать только с перекомпиляцией в OS X.

...