Что такое distnoted на самом деле
distnoted это демон распределённых уведомлений, который поставляется с macOS. Его задача, передавать сообщения между запущенными процессами, когда один из них объявляет об изменении, которое может быть важно для других.
Механизм, лежащий в его основе, это система распределённых уведомлений, доступная разработчикам как NSDistributedNotificationCenter. Представьте её как доску объявлений, а не телефонный звонок. Приложение или системный компонент публикует короткое сообщение, которое по сути говорит, "это изменилось", и любой процесс, зарегистрированный на такие сообщения, получает его копию. Ни одной из сторон не нужно знать о существовании другой. distnoted это посредник в середине, который ведет список слушателей и передаёт сообщения дальше.
Объявляемые события обычные, изменились настройки, было подключено устройство, переключился пользовательский параметр. Приложения полагаются на это, чтобы реагировать на изменения, сделанные в других частях системы, без постоянного опроса. Это неприметная системная служба, поэтому у неё нет интерфейса и документации, рассчитанной на конечных пользователей. Это первый сторонний бинарный файл Apple, подписанный Apple, присутствующий на каждой современной установке macOS, и не то, что вы устанавливали.
Почему вы его видите и какое исправление требуется большинству пользователей
Большинство людей сталкиваются с distnoted одинаково: что-то кажется медленным, запускают Activity Monitor, и незнакомое имя выглядит подозрительно. Название делает большую часть своей работы. "distnoted" читается как сокращение, и люди обычно думают о distributed в сетевом смысле, то есть о удалённых серверах и машинах, которые общаются друг с другом.
Это предположение неверно, и исправить его, самая полезная вещь, которую может сделать эта статья. distnoted это межпроцессное взаимодействие на вашем локальном компьютере, а не сетевой трафик. "Distributed" здесь означает распределённый между процессами, запущенными на вашем Mac, а не по сети. Демон не выходит в интернет, ничего не загружает и никуда ничего не отправляет. Вся его вселенная, это набор процессов на машине перед вами.
Это важно, потому что многие, кто ищет это имя, приходят сюда после проверки сетевой активности. Они видят соединение, которое не могут объяснить, смотрят на запущенные процессы и приписывают трафик незнакомому имени. Если это про вас, то атрибуция почти наверняка ошибочна. distnoted плохой подозреваемый, потому что у него изначально нет такой возможности, а то, что открыло это соединение, было чем-то другим.
Это вредоносное ПО, и почему их несколько копий
distnoted не является вредоносным ПО. Это системный демон Apple, который уже много лет входит в состав macOS. Иногда вредоносное ПО заимствует имена легитимных системных процессов, чтобы не выделяться, так что желание проверить вполне разумно, и вы можете разобраться сами, ничего не устанавливая.
В Activity Monitor дважды щёлкните по записи distnoted, чтобы открыть окно Info. Вкладки там показывают родительский процесс, статистику памяти и открытые файлы. Настоящий системный демон показывает правдоподобную цепочку запуска, а не что-то странное вроде браузера или загруженного приложения, и он не будет запускаться из папки Downloads или Desktop. Для более надёжной проверки команда codesign в Терминале показывает центр подписи запущенного бинарного файла, и у настоящего distnoted этот центр подписи указывает на Apple.
Ещё один повод для подозрений, это несколько процессов distnoted одновременно. Это нормально. Демон работает по сеансу или по контексту, а не как один системный экземпляр на всё устройство, поэтому на машине с вошедшим пользователем и разными фоновыми контекстами вы увидите несколько таких процессов. Три, четыре или больше, это не повод для тревоги. Обычно в столбце User у них указаны разные учётные записи, включая системные, что и выдаёт отдельные контексты, а не дубли. В обычной работе каждый из них практически не использует CPU. Ряд неактивных процессов distnoted, это нормальное состояние.
Когда distnoted использует высокий ЦП
Иногда distnoted перестает быть невидимым и начинает потреблять заметный CPU, иногда достаточно, чтобы включились вентиляторы. Когда это происходит, важно помнить, что distnoted обычно является симптомом, а не причиной.
Вспомните, что он делает: он пересылает сообщения, которые публикуют другие процессы. Если он сильно загружен, значит кто-то публикует очень много сообщений. Какое-то приложение зациклилось: оно отправляет уведомление, реагирует, потом отправляет его снова, либо сообщает об изменении сотни раз в секунду, когда хватило бы одного. Демон просто выполняет свою работу при нагрузке, к которой он никогда не был рассчитан. Остановка ничего надолго не решает, потому что macOS запустит его снова, а шумное приложение продолжит работу сразу же.
Поиск виновника, это процесс исключения. Отсортируйте Activity Monitor по CPU и посмотрите, что еще поднято в тот же момент. Часто вверху списка оказывается второй процесс, и это ваш кандидат. Обычно виновниками бывают клиенты синхронизации, менеджеры буфера обмена, утилиты панели меню, старые сторонние панели настроек и приложения, которые работают неделями без перезагрузки. Закрывайте подозреваемые по одному и смотрите, успокаивается ли distnoted.
Если ничего очевидного не видно, перезагрузите Mac, это очищает петли, накопленные за долгое время работы, и решает значительную часть случаев. Если поведение возвращается и вы можете связать его с конкретным приложением, проверьте, есть ли для него обновление. Не стоит пытаться отключать или блокировать сам distnoted. Межпроцессные уведомления нужны для обычной работы, macOS восстановит его, а вы будете бороться с посланником, а не с отправителем.
Локальные процессы против процессов, которые действительно подключаются наружу
Тревога здесь не столько из-за демона. Дело в том, что Activity Monitor показывает длинный список процессов с загадочными именами и без возможности понять, какие из них вообще касаются сети. Всё выглядит одинаково подозрительно, поэтому незнакомое имя превращается в вопросительный знак, а вопросительный знак, в целый день поиска.
Различие, которое всё проясняет, простое, как только вы его увидите. Большая часть того, что работает на Mac, локальная: демоны вроде distnoted, которые пересылают сообщения между процессами, индексируют файлы, управляют окнами или обрабатывают звук. Они никогда не открывают сокет. Небольшая часть действительно подключается наружу, и именно она заслуживает внимания. Разделение этих двух групп превращает стену незнакомых имен в короткий, обозримый список.
NetMute создан для этого разделения. Он показывает сетевую активность приложений и процессов в реальном времени, так что вы можете видеть, какие процессы действительно устанавливают исходящие соединения и к каким доменам они обращаются, а также смотреть журнал событий позже. Процессы без сетевой стороны, включая distnoted, просто не отображаются как сетевая активность, и это само по себе отвечает на вопрос, который привел вас сюда. Для тех, что всё же подключаются, NetMute включает встроенный брандмауэр для каждого приложения с блокировкой в один щелчок и временными правилами, которые истекают сами.
Чтобы было ясно по объему: к distnoted это не относится. NetMute не блокирует и не управляет им, потому что у него нет сетевой стороны, которой можно управлять. Польза здесь в обратном. Когда вы видите процессы, которые действительно общаются с интернетом, можно перестать переживать о множестве тех, что этого не делают. NetMute можно бесплатно скачать в Mac App Store, а Premium покупается один раз в приложении, без подписки.