Я создаю приложение, которое предоставляет LaunchAgent (небольшое приложение пользовательского интерфейса со значком «трей», допустим, это определено в /Library/LaunchAgents/foo.plist
.
При установке пакета launchctl автоматически загружает это описание LaunchAgent и запускает процессы для всех вошедших в систему пользователей. (т.е. мне не нужно загружать его с помощью загрузки launchctl, как я должен делать с LaunchDaemons).
Когда я удаляю пакет, все файлы, включая plist-файл LaunchAgent в /Library/LaunchAgents
, удаляются, но процессы продолжают работать.
(у меня несколько пользователей вошли в систему, поэтому есть несколько экземпляров этого агента)
Теперь, как я должен сказать root launchd, чтобы остановить эти процессы (для неопределенного числа пользователей) при запуске от имени root? (обратите внимание, что launchctl, запущенный от имени пользователя root, даже не видит этих агентов).
(pid-файлы, killall more-or-less-unique-executable-name
- это последнее средство, и я сохраняю это решение в качестве последнего средства)