daemon not running starting it now on port 5037: что делать

Сообщение «daemon not running; starting it now on port 5037» появляется в терминале при первом запуске команды adb после загрузки компьютера и само по себе не является ошибкой — это штатный старт фонового сервера ADB (Android Debug Bridge), который слушает порт 5037. Проблемой оно становится только тогда, когда после этой строки процесс зависает, завершается с ошибкой или устройство не определяется командой adb devices.

Разберёмся, как отличить нормальное поведение от сбоя, почему демон может не стартовать или «отваливаться», и какие действия помогают восстановить связь между ПК и Android-устройством. Инструкции подходят для Windows, macOS и Linux — различия в командах указаны отдельно.

Что означает это сообщение и когда всё в порядке

ADB устроен по клиент-серверной схеме: консольная команда — это клиент, а фоновый процесс adb-сервера (daemon) работает постоянно и обслуживает подключения к устройствам. Когда вы вводите любую команду adb и сервер ещё не запущен, клиент автоматически стартует его — именно об этом сообщает строка про порт 5037.

Нормальная последовательность выглядит так:

 daemon not running; starting it now at tcp:5037 

* daemon started successfully

List of devices attached

XXXXXXXX device

Если после строки daemon started successfully команда выполняется и устройство видно — ничего делать не нужно. Тревожные признаки: сообщение повторяется при каждом запуске, появляется ошибка cannot bind to port 5037, adb server is out of date или список устройств пуст либо показывает статус unauthorized.

Первичная диагностика: проверка состояния сервера и устройства

Начните с простой проверки, которая занимает меньше минуты. Откройте терминал (в Windows — cmd или PowerShell) и выполните:

adb devices

Возможные результаты и их трактовка:

  • 📱 device — всё работает, проблема была разовой;
  • 🔒 unauthorized — на смартфоне не подтверждён запрос «Разрешить отладку по USB»; разблокируйте экран и подтвердите диалог;
  • 👻 offline — связь есть, но сессия зависла: помогает перезапуск сервера (см. ниже);
  • 🚫 пустой список — устройство не видно: проверяйте кабель, драйверы и режим подключения USB.

Если устройство не определяется, проверьте, что на нём включён режим разработчика и отладка по USB (обычно: Настройки → О телефоне → несколько нажатий на «Номер сборки», затем Настройки → Для разработчиков → Отладка по USB). Точные названия пунктов зависят от оболочки производителя.

📊 Что вы видите после сообщения о порте 5037?
Устройство определяется, всё работает
Ошибка cannot bind to port 5037
Устройство в статусе unauthorized или offline
Список устройств пуст

Как перезапустить ADB-сервер

Зависший или некорректно работающий демон — самая частая причина проблем. Перезапуск выполняется двумя командами:

adb kill-server

adb start-server

После этого снова выполните adb devices и проверьте результат. Если сервер не стартует или команда «висит», завершите процесс вручную: в Windows через Диспетчер задач (процесс adb.exe), в macOS/Linux — командой:

pkill adb

☑️ Базовый чек-лист восстановления ADB

Выполнено: 0 / 4
⚠️ Внимание: не завершайте процесс adb во время прошивки или выполнения команд adb sideload — прерывание операции записи может привести к сбоям устройства. Перезапускайте сервер только когда никакие критичные операции не выполняются.

Ошибка «cannot bind to port 5037»: порт занят

Если демон не стартует с ошибкой привязки к порту, значит порт 5037 уже занят другим процессом. Типичные виновники: вторая копия adb из другого комплекта platform-tools, эмуляторы Android, среды разработки (Android Studio), менеджеры смартфонов от производителей, некоторые программы синхронизации.

Узнать, кто занял порт, в Windows можно так:

netstat -ano | findstr 5037

Последний столбец — PID процесса, его можно посмотреть в Диспетчере задач на вкладке «Подробности». В macOS/Linux аналог:

lsof -i :5037

Дальше два пути: завершить конфликтующий процесс либо удалить лишние копии adb и оставить одну актуальную версию platform-tools, добавленную в переменную окружения PATH. Смешение нескольких версий adb на одном компьютере — частый источник сообщения adb server is out of date: старый клиент убивает новый сервер и наоборот, и демон перезапускается бесконечно.

Проблемы с драйверами и USB-подключением (Windows)

Если сервер стартует нормально, но список устройств пуст, причина чаще всего на стороне Windows или кабеля. Откройте Диспетчер устройств и посмотрите, как определяется смартфон: устройство с восклицательным знаком или «Неизвестное USB-устройство» указывает на проблему с драйвером.

  • 🔌 Попробуйте другой USB-порт, желательно напрямую на материнской плате, без хабов;
  • 🧵 Замените кабель — часть кабелей поддерживает только зарядку, без передачи данных;
  • 💾 Установите драйвер от производителя смартфона либо Google USB Driver (для устройств, где он применим);
  • 🔁 На смартфоне смените режим USB на «Передача файлов (MTP)» — иногда это помогает системе корректно инициализировать устройство.

После установки драйвера перезапустите adb-сервер и проверьте adb devices ещё раз.

Сравнение типичных симптомов и решений

СимптомВероятная причинаРешение
Сообщение появляется, устройство видноШтатный запуск сервераНичего не требуется
cannot bind to port 5037Порт занят другим процессомНайти процесс через netstat/lsof, завершить его
adb server is out of dateКонфликт нескольких версий adbОставить одну копию platform-tools в PATH
unauthorizedНе подтверждена отладка на смартфонеРазблокировать экран, подтвердить диалог RSA
Пустой список устройствДрайвер, кабель или отключённая отладкаПроверить драйвер, кабель, настройки разработчика
⚠️ Внимание: не скачивайте «adb-драйверы» и отдельные исполняемые файлы adb.exe с неофициальных сайтов — под видом утилит нередко распространяется вредоносное ПО. Используйте platform-tools с официального сайта для разработчиков Android и драйверы с сайта производителя устройства.

Если ничего не помогло: дополнительные шаги

Когда стандартные методы исчерпаны, остаются более глубокие проверки. Во-первых, на смартфоне можно отозвать авторизации отладки: Настройки → Для разработчиков → Отозвать доступ для отладки по USB, затем переподключить устройство и подтвердить запрос заново. Это помогает при «застрявшем» статусе unauthorized.

Во-вторых, проверьте, не блокирует ли антивирус или брандмауэр локальное соединение на порт 5037 — временно отключите защиту и повторите запуск. В-третьих, обновите platform-tools до свежей версии: старые сборки adb могут конфликтовать с новыми версиями Android на устройстве.

ADB по Wi-Fi как обходной вариант

Если USB-подключение нестабильно, на устройствах с современными версиями Android доступна беспроводная отладка (Настройки → Для разработчиков → Беспроводная отладка). Сопряжение выполняется командой adb pair с кодом с экрана телефона, затем adb connect по IP-адресу устройства. Это не лечит причину сбоя USB, но позволяет продолжить работу.

Наконец, перезагрузка обоих устройств — тривиальный, но рабочий шаг: он сбрасывает зависшие USB-сессии и состояние демона одновременно на обеих сторонах.

Частые вопросы

«daemon not running» — это вирус или ошибка системы?

Нет. Это стандартное информационное сообщение утилиты adb о том, что фоновый сервер не был запущен и стартует сейчас. Ошибкой оно становится, только если за ним не следует успешный запуск и выполнение команды.

Почему сообщение появляется при каждом запуске команды?

Возможные причины: adb-сервер завершается сразу после старта (конфликт версий или занятый порт), либо каждая команда запускается из другой копии adb. Проверьте, сколько экземпляров adb есть в системе, и оставьте один актуальный.

Устройство показывает unauthorized, а диалог на экране не появляется. Что делать?

Разблокируйте смартфон, отзовите авторизации отладки в настройках разработчика, переподключите кабель и выполните adb kill-server, затем adb devices. Диалог подтверждения должен появиться заново. Также проверьте, что экран не заблокирован в момент подключения.

Можно ли сменить порт 5037 на другой?

Да, adb позволяет задать другой порт через переменную окружения ANDROID_ADB_SERVER_PORT или параметр -P у команд. Но обычно проще и надёжнее освободить стандартный порт, завершив конфликтующий процесс.

ADB не видит устройство, хотя оно заряжается от ПК. В чём дело?

Зарядка работает и по кабелю без линий передачи данных. Замените кабель на заведомо «дата-кабель», попробуйте другой порт USB и убедитесь, что на смартфоне включена отладка по USB.