Якщо послуга є enabled
, значить, десь знаходиться симпосилання
/etc/systemd/system
до одиничного файлу, найчастіше десь у
/lib/systemd/system
Корисно, коли ви надаєте enable
послугу, повний шлях створеного посилання та цілі буде надрукований до stdout.
Якщо вимкнути службу, видаляється симпосилання, тому сам файл одиниці не впливає, але служба не завантажується при наступному завантаженні, коли система читає /etc/systemd/system
.
Однак служба з обмеженими можливостями може бути завантажена, і вона буде запущена, якщо послуга, яка залежить від неї, буде запущена ; enable
і disable
лише налаштувати поведінку автоматичного запуску для одиниць, і стан легко перекрити.
Маскується обслуговування один блок якого файл є символічним посиланням /dev/null
. Це робить неможливим завантаження послуги, навіть якщо цього вимагає інша, включена служба.
Коли ви надаєте mask
послугу, символьне посилання створюється з /etc/systemd/system
до /dev/null
, залишаючи оригінальний файл одиниці в іншому місці недоторканим. Коли ви надаєте unmask
послугу, символьне посилання видаляється.
Однак я помітив, що ці команди не завжди шануються.
Коли я намагаюся замаскувати більшість сервісів, це не вдається:
$ sudo systemctl mask bluetooth.service
Failed to execute operation: Invalid argument
Звичайно, спочатку я припинив службу. @Anwar пропонує маскування можливе лише для некритичних служб.
Якщо розкрити послугу в масках, якщо я не маскував її, також не вдається (мовчки). Я вважаю, що це тому, що ніде не існує файлу одиниці для послуги, окрім як у вигляді символьного посилання на /dev/null
цей раз у /lib/systemd/system
:
$ file $(locate fuse.service)
/lib/systemd/system/fuse.service: symbolic link to /dev/null
$ sudo systemctl unmask fuse.service
$ systemctl status fuse
● fuse.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Я не єдиний, хто має цю проблему
Щоб фактично розкрити маскуваний сервіс x11-common, мені довелося видалити симпосилання до /dev/null
та sudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
. Тепер, коли я запитую його, systemctl status x11-common
я бачу, що сервіс має гарне зелене коло та завантажений та активний (вийшов), хоча у нього немає одиничного файлу.
Для подальшого ознайомлення ця стаття про те, як використовувати Systemctl, може бути корисною .