Ошибка «failed to stop anydesk.service: unit anydesk.service not loaded» — причины и решение

Ошибка failed to stop anydesk.service: unit anydesk.service not loaded появляется в терминале Linux при попытке остановить службу AnyDesk через systemctl, когда systemd не находит загруженный юнит с таким именем. Чаще всего это происходит при удалении пакета, после неудачной установки или когда служба уже остановлена и выгружена из памяти менеджера systemd.

Сообщение выглядит тревожно, но по сути оно означает одно: systemd не знает о существовании юнита anydesk.service в текущий момент. Это не критический сбой системы, а рассинхронизация между тем, что вы пытаетесь остановить, и тем, что реально зарегистрировано в менеджере служб. Ниже разберём, почему так происходит и как корректно решить ситуацию в зависимости от вашей цели — остановить программу, полностью удалить её или вернуть службу в рабочее состояние.

Что означает сообщение «unit not loaded»

В systemd каждая служба описывается юнит-файлом, который менеджер загружает в память. Статус not loaded говорит о том, что юнит отсутствует в списке активных объектов: либо файл службы удалён, либо systemd ещё не перечитал конфигурацию после изменений, либо служба никогда не была установлена как системный юнит.

Важно различать похожие состояния. not-found означает, что юнит-файл вообще не существует на диске, а not loaded при попытке остановки часто возникает, когда служба уже завершена и выгружена, и systemd не считает нужным держать её в памяти. Поэтому команда sudo systemctl stop anydesk возвращает ошибку, хотя сама программа при этом уже не работает.

⚠️ Внимание: ошибка «unit not loaded» при остановке часто означает, что служба и так не запущена. Прежде чем предпринимать дальнейшие действия, проверьте фактическое состояние процесса — возможно, ничего исправлять не требуется.

Диагностика: проверяем реальное состояние службы

Первый шаг — выяснить, что systemd знает о юните прямо сейчас. Для этого выполните:

systemctl status anydesk.service

systemctl list-unit-files | grep -i anydesk

ps aux | grep -i anydesk

Первая команда покажет статус юнита, вторая — присутствует ли юнит-файл в системе и включён ли он в автозагрузку, третья — запущены ли процессы AnyDesk в обход systemd. Именно сопоставление этих трёх результатов даёт полную картину.

  • 🔍 Статус could not be found и пустой вывод list-unit-files — юнит-файл удалён, служба не установлена.
  • 📄 Юнит-файл есть, но статус inactive (dead) — служба установлена, просто не запущена.
  • ⚙️ Процесс anydesk виден в ps, но юнита нет — программа запущена вручную или из пользовательской сессии.
  • 🔁 Юнит есть, но systemd «не видит» его после установки — требуется перечитать конфигурацию.
📊 В какой ситуации вы столкнулись с ошибкой?
При удалении AnyDesk
При остановке службы вручную
После обновления пакета
При автозапуске системы

Причина 1: служба уже остановлена или выгружена

Наиболее безобидный сценарий: вы повторно выполняете systemctl stop anydesk, а служба к этому моменту уже завершена. Systemd выгружает неактивные юниты без включённого автозапуска, и повторная попытка остановки возвращает failed to stop anydesk.service: unit anydesk.service not loaded.

В этом случае ничего чинить не нужно. Убедитесь через ps aux | grep anydesk, что процессов не осталось, и считайте задачу выполненной. Если процессы всё же висят в памяти, завершите их вручную командой sudo killall anydesk — это корректный способ остановить экземпляры, запущенные вне контроля systemd.

Причина 2: юнит-файл удалён, но systemd держит устаревший кэш

Обратная ситуация возникает при удалении пакета: файлы службы стёрты, но в выводе systemctl ещё мелькают следы юнита, либо, наоборот, свежеустановленный пакет не подхватывается менеджером. В обоих случаях помогает принудительное обновление конфигурации systemd:

sudo systemctl daemon-reload

sudo systemctl reset-failed

Команда daemon-reload заставляет systemd заново прочитать все юнит-файлы с диска, а reset-failed очищает список юнитов, застрявших в состоянии failed. После этого повторите проверку статуса — в большинстве подобных случаев рассинхронизация исчезает.

Причина 3: ошибка возникает при удалении AnyDesk

Частый сценарий — сообщение появляется в выводе пакетного менеджера при деинсталляции: скрипт пакета пытается остановить службу, которая уже выгружена, и печатает ошибку. Само по себе это не прерывает удаление, но оставляет в системе «хвосты», если процесс шёл с перебоями.

Для чистого удаления в дистрибутивах на базе Debian/Ubuntu последовательность выглядит так:

sudo systemctl stop anydesk 2>/dev/null

sudo killall anydesk 2>/dev/null

sudo apt purge anydesk

sudo systemctl daemon-reload

В RPM-системах (Fedora, RHEL, openSUSE) вместо apt purge используется sudo dnf remove anydesk или sudo zypper remove anydesk соответственно. После деинсталляции проверьте, не осталось ли конфигурационных каталогов /etc/anydesk и ~/.anydesk — их можно удалить вручную, если настройки больше не нужны.

☑️ Чистое удаление AnyDesk из Linux

Выполнено: 0 / 5

Причина 4: служба не зарегистрирована после установки

Если вы только что установили AnyDesk, а systemctl status anydesk сообщает, что юнит не найден, вероятная причина — установка прошла неполностью или пакетный скрипт не смог зарегистрировать службу. Сначала выполните sudo systemctl daemon-reload и проверьте снова.

Если юнит так и не появился, проверьте наличие файла службы в стандартных каталогах:

ls /etc/systemd/system/ | grep -i anydesk

ls /usr/lib/systemd/system/ | grep -i anydesk

ls /lib/systemd/system/ | grep -i anydesk

Отсутствие файла во всех трёх каталогах означает, что установка пакета завершилась с ошибкой. В этом случае переустановите пакет и внимательно прочитайте вывод менеджера пакетов — там обычно указано, на каком этапе произошёл сбой. Путь к каталогу юнитов может отличаться в зависимости от дистрибутива, поэтому сверяйтесь с документацией вашей системы.

⚠️ Внимание: не создавайте юнит-файл anydesk.service вручную «с нуля», если не уверены в его содержимом. Некорректные параметры запуска могут привести к тому, что служба будет падать в цикле перезапусков. Безопаснее переустановить официальный пакет.

Сравнение типичных сценариев ошибки

Сценарий Признак Решение
Повторная остановка Процессов anydesk нет в ps Ничего не требуется
Устаревший кэш systemd Юнит «висит» после удаления/установки daemon-reload и reset-failed
Удаление пакета Ошибка в выводе apt/dnf killall, purge, daemon-reload
Запуск вне systemd Процесс есть, юнита нет Завершить процесс вручную
Неполная установка Юнит-файл отсутствует на диске Переустановка пакета
Почему AnyDesk может работать без системной службы

AnyDesk умеет запускаться как обычное пользовательское приложение — для разовых сессий удалённого доступа служба не обязательна. Системный юнит нужен для постоянного неконтролируемого доступа и автозапуска до входа пользователя в систему. Поэтому отсутствие юнита не всегда означает неисправность: если вы запускаете программу вручную, она работает в пользовательской сессии.

Когда ошибка повторяется: дополнительные проверки

Если после всех шагов сообщение продолжает появляться, проверьте журнал systemd на предмет связанных ошибок: journalctl -u anydesk.service --no-pager | tail -50. Там могут быть записи о попытках запуска, падениях или конфликтах, которые объяснят нестандартное поведение юнита.

Также убедитесь, что в системе не осталось «осиротевших» симлинков автозапуска: команда systemctl list-unit-files | grep anydesk не должна показывать юнит со статусом enabled, если сам файл удалён. При наличии такой записи выполните sudo systemctl disable anydesk и повторите daemon-reload.

Часто задаваемые вопросы

Опасна ли ошибка «unit anydesk.service not loaded» для системы?

Нет. Это информационное сообщение о том, что systemd не нашёл загруженный юнит с указанным именем. На работу остальных служб и системы в целом оно не влияет.

Почему systemctl stop выдаёт ошибку, хотя AnyDesk работает?

Вероятно, программа запущена вручную из графической сессии, а не как системная служба. Проверьте процессы командой ps aux | grep anydesk и завершите их через killall anydesk.

Чем отличается daemon-reload от reset-failed?

daemon-reload перечитывает юнит-файлы с диска, а reset-failed очищает список юнитов в состоянии сбоя. При рассинхронизации после установки или удаления пакетов обычно выполняют обе команды.

Ошибка появляется при каждом удалении пакета — это нормально?

Да, если служба уже была остановлена и выгружена: скрипт деинсталляции пытается остановить её повторно и получает «not loaded». Само удаление при этом обычно завершается успешно — проверьте итоговый статус пакета.

Как полностью убрать AnyDesk из автозагрузки?

Выполните sudo systemctl disable anydesk, затем остановите процессы и при необходимости удалите пакет. После этого проверьте systemctl list-unit-files | grep anydesk — записей быть не должно.