Ошибка systemd: Unit is masked: Cannot start service — Снятие маскировки
Попытка запуска, перезапуска или включения системной службы блокируется на уровне 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).
- Проверьте текущее состояние и расположение символической ссылки замаскированного юнита:
systemctl status <service_name> ls -l /etc/systemd/system/<service_name>.service - Выполните штатное снятие маскировки с помощью команды
unmask:sudo systemctl unmask <service_name>.service - Если маскировка была установлена на уровне runtime (во временном каталоге
/run):sudo systemctl unmask --runtime <service_name>.service - В случае, если команда
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>* - Перечитайте дерево юнитов systemd и запустите службу:
sudo systemctl daemon-reload sudo systemctl start <service_name>.service
sendmail при установке postfix). Убедитесь, что снятие маскировки не создаст аппаратных или сетевых конфликтов.Частые вопросы (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>.