Odpowiedzi:
Użyte polecenia są poprawne . Zobacz także instrukcję .
Wygląda na to, że unmask
polecenie kończy się niepowodzeniem, gdy w systemie nie ma pliku jednostki innego niż dowiązanie symboliczne do /dev/null
. Jeśli jesteś mask
usługą, to tworzy nowe łącze symboliczne do miejsca, /dev/null
w /etc/systemd/system
którym systemd szuka plików jednostkowych do załadowania podczas rozruchu. W takim przypadku nie ma pliku rzeczywistej jednostki.
Inni wydają się mieć podobne problemy
x11-common.service
został również zamaskowany w moim systemie. Możesz to naprawić w następujący sposób:
Najpierw sprawdź, czy plik jednostkowy jest dowiązaniem symbolicznym /dev/null
file /lib/systemd/system/x11-common.service
powinien zwrócić:
/lib/systemd/system/x11-common.service: symbolic link to /dev/null
w takim przypadku usuń go
sudo rm /lib/systemd/system/x11-common.service
Ponieważ zmieniłeś plik jednostki, musisz uruchomić to:
sudo systemctl daemon-reload
teraz sprawdź status:
systemctl status x11-common
jeśli nie wyświetla się komunikat o załadowaniu i uruchomieniu (jeśli kółko jest nadal czerwone), zainstaluj ponownie pakiet:
sudo apt-get install --reinstall x11-common
i ponownie załaduj demona
sudo systemctl daemon-reload
i jeszcze raz sprawdź status
systemctl status x11-common
Teraz jest zielony i działa :) Usługa nie ma pliku jednostki systemowej, ale systemd chętnie używa do tego skryptu /etc/init.d
.
/etc/init/
...). Możesz zadać nowe pytanie. To, co zrobiłem, nie robi widocznej różnicy, tylko usługa pokazuje, że jest załadowana, włączona, zatrzymana (jest aktywna przy uruchomieniu) (zielona) zamiast załadowanej zamaskowanej martwej (czerwona). Powinienem przeczytać moje logi ...
/dev/null
? Masz jednak rację co do mojej odpowiedzi. Nazwałbym to rozwiązanie obejściem ... mylącego zachowania ... systemd
Być może Twoja usługa ma pusty plik zastępowania, taki jak ten:
● redis-server.service - Zaawansowany magazyn klucz-wartość Załadowano: załadowano (/lib/systemd/system/redis-server.service; zamaskowany; preset dostawcy: włączony) Drop-In: / etc / systemd / system / redis-server .service.d └─limit.conf
Sprawdź, czy limit.conf jest pustym plikiem. Jeśli tak, usuń go. Następnie usługa powinna zostać zdemaskowana.
Wykonaj poniższe kroki:
systemctl edit systemd-hostnamed
Dodaj 2 wiersze poniżej, a następnie zamknij edytor (nie zapomnij zapisać po wyświetleniu monitu):
[Service]
PrivateNetwork=no
Spowoduje to utworzenie pliku override.conf z powyższymi 2 liniami w katalogu:
/etc/systemd/system/systemd-hostnamed.service.d/
Aktualizacja systemd:
systemctl daemon-reload
Następnie uruchom ponownie usługę:
systemctl restart systemd-hostnamed
Powinieneś być teraz w stanie biegać hostnamectl
bez zawieszenia.