Systemctl, как снять маску

root@gcomputer:~# systemctl status x11-common● x11-common.service   Loaded: masked (/dev/null; bad)   Active: inactive (dead)

Я пытался systemctl unmask x11-common и systemctl unmask x11-common.service но это ничего не изменило.

Как мне разоблачить его?

Команды, которые вы используете, следующие оба правильных. См. также руководство по эксплуатации.

Кажется, что 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, но systemd с радостью использует скрипт для него в /etc/init.d вместо.

Выполните следующие действия:

  1. systemctl edit systemd-hostnamed

    Добавьте 2 строки ниже, затем выйдите из редактора (не забудьте сохранить при появлении запроса):

    [Service]PrivateNetwork=no
  2. Это создаст файл override.conf с вышеуказанными 2 строками в каталоге:

    /etc/systemd/system/systemd-hostnamed.service.d/
  3. Обновление systemd:

    systemctl daemon-reload
  4. Затем перезапустите службу:

    systemctl restart systemd-hostnamed

Теперь вы должны быть в состоянии запустить hostnamectl без того, чтобы он висел.

Возможно, у вашей службы есть пустой файл переопределения, например:

● redis-server.service - Advanced key-value store   Loaded: loaded (/lib/systemd/system/redis-server.service; masked; vendor preset: enabled)  Drop-In: /etc/systemd/system/redis-server.service.d           └─limit.conf

Проверьте, является ли limit.conf пустым файлом. Если это так, пожалуйста, удалите его. Затем служба должна быть разоблачена.