як розкрити systemctl


27
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але це нічого не змінило.

Як я його розкрити?

Відповіді:


35

Команди, які ви використовуєте, є правильними . Дивіться також посібник .

Здається, що 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цього.


Гаразд, подальше запитання: Якщо його навіть замаскували у вашій системі, для чого це послуга? Здається, вона насправді не потрібна, якщо вона замаскована для нас обох.
Альберт

@Albert [Дивіться тут.] ( Askubuntu.com/questions/712276/… ), схоже, сервіс працює без файлу системного блоку (у нього є файл у /etc/init/...). Ви можете задати нове запитання. Що я зробив, явна різниця не мала, лише сервіс показує як завантажений, увімкнений, зупинений (він активний при запуску) (зелений) замість завантажених замаскованих мертвих (червоний). Я повинен прочитати свої журнали ...
Zanna

якщо надходить оновлення для systemd, файл модуля перевстановлюється, тому це насправді не є структурним рішенням
hbogert

@hbogert це трапляється, навіть якщо не було одиничного файлу крім символьної посилання на /dev/null? Ти маєш рацію щодо моєї відповіді. Я б назвав це рішення вирішенням для ... заплутаної поведінки ... systemd
Zanna

Чи можете ви описати своє перше речення в точних файлах, які мають значення в даному випадку (тому що я не дуже розумію сценарій вашого опису)?
hbogert

2

Можливо, у вашій службі є порожній файл перезапису, такий:

● redis-server.service - Розширений магазин ключових значень Завантажений: завантажений (/lib/systemd/system/redis-server.service; маскується; попередньо встановлений постачальник: увімкнено) Drop-In: / etc / systemd / system / redis-server .service.d └─limit.conf

Перевірте, чи не є limit.conf порожнім файлом. Якщо він є, видаліть його. Тоді послугу слід замаскувати.


0

Виконайте наведені нижче дії:

  1. systemctl edit systemd-hostnamed

    Додайте 2 рядки нижче та вийдіть із редактора (не забудьте зберегти, коли буде запропоновано):

    [Service]
    PrivateNetwork=no
    
  2. Це створить файл override.conf із вказаними вище двома рядками в каталозі:

    /etc/systemd/system/systemd-hostnamed.service.d/
    
  3. Система оновлень:

    systemctl daemon-reload
    
  4. Потім перезапустіть службу:

    systemctl restart systemd-hostnamed
    

Тепер ви повинні мати можливість бігати, hostnamectlне висячи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.