Что такое distnoted на самом деле
distnoted — это распределённый демон уведомлений, который поставляется с macOS. Его задача — передавать сообщения между запущенными процессами, когда один из них транслирует изменение, которое могут заметить другие.
Механизм, лежащий в основе этого, — система распределённых уведомлений, предоставляемая разработчикам как NSDistributedNotificationCenter. Представьте её как доску объявлений, а не телефонный звонок. Приложение или системный компонент публикует короткое сообщение, которое по сути говорит: «это изменение произошло», и любой процесс, зарегистрированный для получения таких сообщений, получает его копию. Ни одна из сторон не должна знать о существовании другой. distnoted — это посредник, который хранит список слушателей и передаёт сообщения.
Объявляемые события — обычные: изменение настроек, подключение устройства, переключение пользовательских параметров. Приложения используют это для реакции на изменения, сделанные в системе, без постоянного опроса. Это незаметная часть системы, поэтому у неё нет интерфейса и документации для конечных пользователей. Это бинарный файл Apple, подписанный Apple, присутствующий на каждом современном macOS, и это не то, что вы устанавливали самостоятельно.
Почему вы его видите и какое исправление требуется большинству пользователей
Большинство людей замечают distnoted примерно одинаково: что-то кажется медленным, появляется Activity Monitor, и незнакомое имя кажется подозрительным. Имя делает большую часть работы. "distnoted" читается как сокращение, и то, что люди обычно предполагают, — это распределённое в сетевом смысле, как в случае удалённых серверов и машин, общающихся друг с другом.
Это предположение неверно, и исправить его — самая полезная задача этой статьи. distnoted — это межпроцессное взаимодействие на вашем локальном компьютере, а не сетевой трафик. "Распределённый" здесь означает распределённый между процессами, запущенными на вашем Mac, а не по сети. Демон не подключается к интернету, ничего не загружает и никуда не сообщает. Его целая вселенная — это набор процессов на вашем устройстве.
Это важно, потому что многие люди, ищущие по имени, делали это во время проверки сетевой активности. Они увидели соединение, которое не могли объяснить, посмотрели запущенные процессы и связали трафик с незнакомым именем. Если это про вас, то скорее всего, это ошибка. distnoted — плохой подозреваемый, потому что он изначально не обладает такой возможностью, а то, что открыло это соединение, было чем-то другим.
Это вредоносное ПО, и почему их несколько копий
distnoted — это не вредоносное ПО. Это системный демон Apple, который существует в macOS уже много лет. Вредоносное ПО иногда использует имена легитимных системных процессов, чтобы маскироваться, поэтому инстинкт проверить — разумный, и вы можете сделать это самостоятельно, ничего не устанавливая.
В Activity Monitor дважды щёлкните по записи distnoted, чтобы открыть окно информации. Там отображаются родительский процесс, статистика памяти и открытые файлы. Настоящий системный демон показывает правдоподобную цепочку запуска, а не что-то странное вроде браузера или скачанного приложения, и он не будет работать из папки Downloads или Desktop. Для более надёжной проверки команда codesign в Терминале показывает авторитет подписи запущенного бинарного файла, и для настоящего distnoted этот авторитет прослеживается до Apple.
Ещё один признак подозрительности — это наличие нескольких процессов distnoted одновременно. Это нормально. Демон запускается для каждой сессии или контекста, а не как один системный экземпляр, поэтому на машине с вошедшим пользователем и разными фоновыми контекстами может быть несколько. Три, четыре или больше — это не удивительно. Обычно они показывают разные учётные записи в колонке Пользователь, включая системные аккаунты, что и есть признак того, что это отдельные контексты, а не дубли. В нормальной работе каждый из них занимает практически ноль 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 — это единоразовая внутриигровая покупка без подписки.