Действительно ли там какой-либо API Carbon/Cocoa/C доступен на Mac, которые я могу использовать для перечисления процессов? Я ищу что-то как EnumProcesses
в Windows.
Моя цель состоит в том, чтобы проверить из кода, работает ли процесс (по имени).
Спасибо!
TechZen сообщает: По состоянию на декабрь 2013 г. диспетчер процессов полностью устарел.
Ах, я только что нашел Справочник по диспетчеру процессов
Похоже, GetNextProcess
и GetProcessInfo
помогают понять, что работает. Как предложил Дейв, GetBSDProcessList
можно использовать, если вы ищете демонов, а не только процессы Carbon / Cocoa.
В обзоре NSRunningApplicationClass говорится:
NSRunningApplication - это класс для управления и предоставления информации для одного экземпляра приложения. Отслеживаются только пользовательские приложения; это не предоставляет информацию обо всех процессах в системе.
и
Чтобы получить доступ к списку всех запущенных приложений, используйте метод runningApplications в NSWorkspace .
Я бы посоветовал взглянуть на Темы программирования служб рабочей области
Это можно сделать двумя способами:
- [NSWorkspace createdApplications]
. NSTask
, прочтите результаты и выполните поиск самостоятельно (или пропустите его через grep или что-то еще). GetBSDProcessList
, описанную здесь: http://developer.apple.com/legacy/mac/library/#qa/qa2001/qa1123.html (у меня успешно использовали это в прошлом)