я построить приложение, которое обеспечивает LaunchAgent (в маленькое приложение пользовательского интерфейса со значком «подноса»,., Скажем, что определено в /Library/LaunchAgents/foo.plist
остановки LaunchAgent при удалении пакета
При установке пакета launchctl нагрузки это описание LaunchAgent автоматически и запускает процессы для все зарегистрированные пользователи (т. е. мне не нужно загружать их с помощью загрузки startctl, как у меня есть с LaunchDaemons).
Когда я удаляю пакет, все файлы, включая файл plast LaunchAgent в /Library/LaunchAgents
, удаляются, но обрабатываются все еще запущены.
(у меня есть несколько пользователей вошли в систему, поэтому есть несколько экземпляров этого агента)
Теперь, как я могу сказать root startd, чтобы остановить эти процессы (для неуказанного числа пользователей) при запуске с правами root? (note, launchctlt запускается как root, даже не видит этих агентов).
(PID-файлы, killall more-or-less-unique-executable-name
является последним средством, и я держу эти решения, как последнее средство)
Спасибо. Для меня это считается «взломать» решение, но давайте примем реальность и забудем об этом ... –
BTW, grep избыточно здесь ... достаточно одной трубы: LOGGEDUSERS = 'who | awk '/ console/{print $ 1}' ' –