Остановка запуска агентов и демонов

23

Я работаю администратором в среде колледжа. Одной из проблем является прекращение работы служб, установленных студентами с основными специализациями. Некоторое время назад они получили доступ администратора и установили агенты запуска и демоны на некоторых системах. Студенты также добавили некоторые списки как com.apple.myprog.run. Проблема в том, что их нет в каталоге launchagents или в каталоге launchdaemons.

Поэтому мой вопрос заключается в том, как найти путь для этих сервисов демона. Затем следующий шаг - как остановить их. Поскольку некоторые из них могут начаться снова и снова (на основе определенных флагов).

Prashant
источник
Похожая проблема. Не могу остановить запущенного демона launchctl load -wF /Library/LaunchDaemons/name.of.this.plist.
Мелтеми

Ответы:

21

Если вы хотите остановить элемент для этой загрузки, просто введите команду unload для запуска через launchctl. Для постоянного исправления добавьте отключенный ключ в список со значением true или удалите / переместите файл в папку, где launchd не будет сканировать его автоматически.

  • launchctl unload /System/Library/LaunchAgents/com.apple.AppStoreUpdateAgent.plist

На странице руководства для launchctl есть хорошая документация для управления заданиями. Что касается общего поражения майоров CS, вы также можете подумать, что они отредактировали существующие списки яблок, чтобы заставить их делать то, чего вы не ожидаете, поэтому гораздо проще будет просто переустановить ОС и перенести пользовательские данные обратно. из резервной копии (обращая особое внимание на примечание, переустановите любые plist-файлы в / System / Library, / Library) (и, возможно, также проверьте ~ / Library пользователей-администраторов). Потеря admin / root против кого-то, кто знает, как изменить система в основном закончена, и защита (обнаружение и отключение) изменений занимает очень много времени, в отличие от нарушения (переустановка системы из известного хорошего источника и использование инструментов управления конфигурацией для обеспечения обнаружения измененных файлов).

bmike
источник
Дело в том, что я не знаю, где хранится список. Я искал в каталоге LaunchAgents и не вижу там списка приложений.
Прашант
Они могут быть где угодно. Вы можете загрузиться в безопасном режиме и сравнить вывод списка launchctl с обычным списком загрузки. mdfind покажет вам файлы, содержащие посторонние задания (если они не исключили их из внимания). Вы также можете теоретически запустить fs_usage для самого launchd, чтобы отследить, какие файлы были прочитаны во время загрузки, но опять-таки логика запуска fs_usage, которая вскоре при загрузке, сочетается с тем фактом, что вам все еще нужно проверять каждый файл plist, значит, у вас много работы вырезать, чтобы «обнаружить изменения и хирургически удалить их», а не начать чистку.
bmike
1
Если вы действительно хотите найти каждый .plist в системе, это сделает это. Это длинный список. find / -type f -name "*.plist"
afragen
man launchctl unload В предыдущих версиях этот параметр изменял файл конфигурации. Теперь состояние ключа Disabled хранится в другом месте на диске. .. (
Накилон
@Nakilon Не могли бы вы быть точным о версиях? Вы имеете в виду пересмотр версии 10.11 для launchd или другой «предыдущей версии»?
bmike
17

Я нашел самый простой способ сделать это

sudo launchctl list | grep "rough name of what you want to find"
sudo launchctl remove "label.of.the.file"
Oantby
источник
Спасибо, это именно то, что я хотел. Как удалить сервис после удаления файла!
Chmac
2

Попробуйте проверить эти места:

/ Пользователи / Ваше имя пользователя / Библиотека / LaunchAgents /

/ Library / LaunchAgents /

/ Library / LaunchDaemons /

/ System / Library / LaunchAgents /

/ System / Library / LaunchDaemons /

Кори Т
источник
1

Вы можете сделать "dumpctteta launchctl", и он покажет все загруженные сервисы и путь к .plist запуска и содержимому.

Вы, вероятно, захотите запустить его через что-то вроде менее, поскольку он сбрасывает много информации.

Марк Хит
источник