Удаление агента из launchd
Оглавление:
Подавляющему большинству пользователей Mac не нужно вручную настраивать launchd и launchctl, но бывают случаи, когда вы удаляете или прекращаете использовать приложение в Mac OS X, а сервисный агент продолжает без необходимости загружаться запуск Это раздражает, но этих мошеннических агентов легко удалить с помощью командной строки, поэтому запустите Терминал и понеслось. Кроме того, бывают ситуации, когда опытные пользователи по какой-либо причине могут захотеть настроить агенты, загруженные в launchd.В любом случае, мы подробно расскажем, как отображать элементы в launchd, как удалять их из launchd в OS X, а также как повторно загружать агенты в launchd на Mac.
Вам потребуется некоторое понимание и удобство использования командной строки и терминала, чтобы использовать это правильно, что делает его идеальным для более продвинутых пользователей, которые знакомы с демонами запуска и способами их отслеживания, что иногда достаточно просто найти в мониторе активности Mac OS X или с помощью команды launchctl, которую мы вскоре обсудим. Если вы решите отменить модификацию, вы также можете загрузить службу или демон обратно в launchd с помощью другой команды, которая эффективно отменяет начальный шаг удаления. Приступим к делу:
Удаление агентов запуска и служб из launchd в OS X
Вот как удалить службу из launchd. Запустите терминал, а затем используйте следующий синтаксис с командой launchctl:
launchctl удалить имя
Например, если я хочу удалить службу с именем «com.annoying.service», синтаксис будет следующим:
launchctl удалить com.annoying.service
Возможно, вам потребуется поставить перед командой префикс sudo, чтобы удалить службу, в этом случае команда будет выглядеть так:
sudo launchctl remove com.annoying.service
С префиксом sudo вам нужно будет ввести пароль администратора, прежде чем команда будет выполнена.
Как посмотреть, что загружено в launchd
Вы также можете проверить, что загружено в launchd, используя следующую командную строку:
launchctl list
Эта команда выводит список всех агентов и заданий, загруженных в launchd, что позволяет легко управлять запущенными агентами. Поскольку он выводит тонну информации на экран сразу, вы можете захотеть направить ее через более или менее команды, например:
launchctl list |more
Это позволяет нажимать клавишу возврата для более медленной навигации по списку.
Если вы знаете, какую службу вы ищете, вы также можете использовать «grep», чтобы найти конкретную службу агентов, давайте использовать «mdworker» в качестве примера::
launchctl list |grep mdworker
Это сообщит только о следующих запускающих агентах:
- 0 com.apple.mdworker.sizing - 0 com.apple.mdworker.single - 0 com.apple.mdworker.shared - 0 com.apple.mdworker .mail - 0 com.apple.mdworker.lsb - 0 com.apple.mdworker.isolation - 0 com.apple.mdworker.bundles - 0 com.apple.mdworker.32bit
Для некоторых служб при сбросе списка может также отображаться PID (идентификатор процесса) активной службы.
Загрузка агента обратно в launchd
Если вы решите повторно включить и перезагрузить службу обратно в launchd, используйте флаг «загрузить» следующим образом:
launchctl load com.example.service.to.load
Некоторые агенты загружаются мгновенно и без проблем. Для других вам может потребоваться перезагрузить Mac, прежде чем загруженная служба снова будет работать должным образом, хотя иногда достаточно выйти из системы и снова войти в нее.