Ответы:
Команды, которые вы используете, являются правильными . Смотрите также руководство .
Кажется, 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
вместо этого systemd использует сценарий для него .
/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/
Обновление systemd:
systemctl daemon-reload
Затем перезапустите сервис:
systemctl restart systemd-hostnamed
Теперь вы должны быть в состоянии бежать hostnamectl
без зависания.