Відповіді:
Команди, які ви використовуєте, є правильними . Дивіться також посібник .
Здається, що unmask
команда виходить з ладу, коли в системі немає жодного файлу одиниці, крім символьної посилання /dev/null
. Якщо вам mask
сервіс, то , що створює нову символічну посилання /dev/null
в /etc/systemd/system
де Systemd виглядає для одиничних файлів для завантаження при завантаженні. У цьому випадку реального файлу одиниці немає.
У інших, схоже, виникають подібні проблеми
x11-common.service
також був замаскований у моїй системі. Ви можете виправити це так:
Спочатку перевірте, чи файл файлу є символьним посиланням на /dev/null
file /lib/systemd/system/x11-common.service
він повинен повернутися:
/lib/systemd/system/x11-common.service: symbolic link to /dev/null
у такому випадку видаліть його
sudo rm /lib/systemd/system/x11-common.service
Оскільки ви змінили файл одиниці, вам потрібно запустити це:
sudo systemctl daemon-reload
тепер перевірте статус:
systemctl status x11-common
якщо він не каже, що завантажено та працює (якщо коло все ще червоне), перевстановіть пакет:
sudo apt-get install --reinstall x11-common
і знову перезавантажте демон
sudo systemctl daemon-reload
і ще раз перевірити стан
systemctl status x11-common
Тепер він зелений і працює :) У сервісі немає файлу системного блоку, але systemd із задоволенням використовує сценарій для /etc/init.d
цього.
/etc/init/
...). Ви можете задати нове запитання. Що я зробив, явна різниця не мала, лише сервіс показує як завантажений, увімкнений, зупинений (він активний при запуску) (зелений) замість завантажених замаскованих мертвих (червоний). Я повинен прочитати свої журнали ...
/dev/null
? Ти маєш рацію щодо моєї відповіді. Я б назвав це рішення вирішенням для ... заплутаної поведінки ... systemd
Можливо, у вашій службі є порожній файл перезапису, такий:
● redis-server.service - Розширений магазин ключових значень Завантажений: завантажений (/lib/systemd/system/redis-server.service; маскується; попередньо встановлений постачальник: увімкнено) Drop-In: / etc / systemd / system / redis-server .service.d └─limit.conf
Перевірте, чи не є limit.conf порожнім файлом. Якщо він є, видаліть його. Тоді послугу слід замаскувати.
Виконайте наведені нижче дії:
systemctl edit systemd-hostnamed
Додайте 2 рядки нижче та вийдіть із редактора (не забудьте зберегти, коли буде запропоновано):
[Service]
PrivateNetwork=no
Це створить файл override.conf із вказаними вище двома рядками в каталозі:
/etc/systemd/system/systemd-hostnamed.service.d/
Система оновлень:
systemctl daemon-reload
Потім перезапустіть службу:
systemctl restart systemd-hostnamed
Тепер ви повинні мати можливість бігати, hostnamectl
не висячи.