Когда я запускаю команду sudo systemctl list-unit-files
(я думаю, что sudo является необязательным), я получаю вывод, который показывает все службы и их состояние.
Вот фрагмент из моей машины:
UNIT FILE STATE
...
debian-fixup.service static
debug-shell.service disabled
display-manager.service enabled
dns-clean.service enabled
dsmcad.service enabled
emergency.service static
failsafe-x.service static
friendly-recovery.service masked
fuse.service masked
gdm.service masked
getty-static.service static
getty@.service enabled
gpsd.service indirect
gpsdctl@.service static
gpu-manager.service enabled
halt-local.service static
halt.service masked
hostname.service masked
...
Интересно, почему некоторые сервисы находятся в «замаскированном» состоянии. Я думаю, что это означает, что «это лучше, чем« отключение », потому что служба не может быть запущена ни вручную, ни systemd».
Как я могу получить больше информации о состоянии единицы обслуживания?
Кто поместил подразделения в их соответствующее состояние?
Я пытался, например,
sudo systemctl help dsmcad
- это только вызывает documentation = ...
строку из файла модуля./etc/systemd/system/dsmcad.service
Примечание: здесь я точно знаю , что такое сервис dsmcad и что он делает, я сам его установил. Меня больше интересует общее решение.
mask
иunmask
команда , которая может быть использована сsystemctl
. Так что просто делайsystemctl unmask name_of_service.service
.systemctl unmask name_of_service.service
полностью удалил мой файл определения сервиса/etc/systemd/system/
, так что теперь мне нужно добавить его снова. Если он снова замаскируется, я/etc/systemd/system
это просто символические ссылки на сервисы. Вы должны добавить*.service
файл,/lib/systemd/system
откуда он будет связан,/etc/systemd/system
если выenable
служба.mask
создает ссылку/dev/null
иunmask
удаляет эту ссылку,/etc/systemd/system
и, очевидно, не имеет значения, если кто-то поместит туда файл.hostname.service
маскируется как избыточный, потому чтоsystemd
устанавливает имя хоста (из / etc / hostname) очень рано при запуске.Этот параметр предоставляется пакетом Debian systemd.
Точно так же Debian теперь может работать без сценария оболочки для
halt
системы, вместо этого он обрабатывается systemd-shutdown (исходный код здесь ).Если служба была замаскирована вручную, маска будет установлена
/etc/systemd/system
вместо нее .Службы также маскируются при удалении из Debian / Ubuntu . Я не знаю почему.
источник
Поскольку вы запрашиваете информацию о замаскированном состоянии, важно упомянуть, что в службе можно наблюдать, что после ее запуска изменения в ее определениях перезагружаются (systemctl daemon-reload) и новое состояние НЕ подходит . Одним из простых примеров для понимания является следующий сценарий:
Следовательно, замаскированное состояние может происходить из неправильных определений услуг. Следовательно, пользователь может вызвать состояние без маски, неправильно отредактировав сервис.
Замечание: я не уверен, что это происходит нарочно или это простая ошибка (опция по умолчанию), но это может быть интересная информация, чтобы поделиться
источник