Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
systemd Error: Unit is masked: Cannot start service Linux / DevOps

Ошибка systemd: Unit is masked: Cannot start service — Снятие маскировки

Обновлено: 18.08.2026  ·  Официальная база знаний

Попытка запуска, перезапуска или включения системной службы блокируется на уровне systemd с выводом фатального предупреждения: Failed to start service: Unit is masked или Unit <name>.service is masked, cannot start.

КомандаРезультатПричина блокировки
systemctl start <unit>Failed to start: Unit is maskedСимлинк юнита указывает на /dev/null
systemctl enable <unit>Failed to enable: Unit is maskedЖесткая блокировка автозапуска и ручного старта
systemctl status <unit>Loaded: masked (/dev/null)Файл конфигурации переопределен нулевым устройством
  • Служба не может быть запущена ни пользователем, ни зависимыми сервисами (D-Bus, udev, таймеры).
  • Администратор или инсталлятор пакета заблокировал запуск конфликтующей службы (например, iptables.service при наличии nftables.service).
  1. Проверьте текущее состояние и расположение символической ссылки замаскированного юнита:
    systemctl status <service_name>
    ls -l /etc/systemd/system/<service_name>.service
  2. Выполните штатное снятие маскировки с помощью команды unmask:
    sudo systemctl unmask <service_name>.service
  3. Если маскировка была установлена на уровне runtime (во временном каталоге /run):
    sudo systemctl unmask --runtime <service_name>.service
  4. В случае, если команда unmask не удаляет ссылку, удалите симлинк на /dev/null вручную:
    sudo rm -f /etc/systemd/system/<service_name>.service
    sudo rm -f /etc/systemd/system/<service_name>*
    sudo rm -f /run/systemd/system/<service_name>*
  5. Перечитайте дерево юнитов systemd и запустите службу:
    sudo systemctl daemon-reload
    sudo systemctl start <service_name>.service
Обратите внимание: Маскирование часто выполняется пакетными менеджерами при удалении пакетов или установке конфликтующих демонов (например, маскировка sendmail при установке postfix). Убедитесь, что снятие маскировки не создаст аппаратных или сетевых конфликтов.
Практический опыт инженера: В Ubuntu/Debian утилита `apt` часто маскирует сервисы при их кривом обновлении. Проверяйте статус маскировки перед отладкой логики самого демона.

Частые вопросы (FAQ)

Чем отличается systemctl disable от systemctl mask?

Disable лишь удаляет симлинки автозагрузки (службу можно запустить вручную или как зависимость). Mask связывает юнит с /dev/null, делая любой запуск службы абсолютно невозможным до момента снятия маски.

Что делать, если systemctl unmask пишет Unit is not masked, но служба не стартует?

Проверьте каталоги /lib/systemd/system/ и /usr/lib/systemd/system/ — возможно, исходный юнит-файл поврежден или отсутствует физически.

Как замаскировать службу обратно?

Выполните команду sudo systemctl mask <service_name>.service.

Может ли пользовательский сервис быть замаскирован отдельно?

Да, пользовательские юниты могут маскироваться в каталоге ~/.config/systemd/user/ с помощью флага --user: systemctl --user mask <name>.