Po uruchomieniu polecenia sudo systemctl list-unit-files
(myślę, że sudo jest opcjonalne), otrzymuję dane wyjściowe, które pokazują wszystkie usługi i ich stan.
Oto fragment mojego komputera:
UNIT FILE STATE
...
debian-fixup.service static
debug-shell.service disabled
display-manager.service enabled
dns-clean.service enabled
dsmcad.service enabled
emergency.service static
failsafe-x.service static
friendly-recovery.service masked
fuse.service masked
gdm.service masked
getty-static.service static
[email protected] enabled
gpsd.service indirect
[email protected] static
gpu-manager.service enabled
halt-local.service static
halt.service masked
hostname.service masked
...
Zastanawiam się, dlaczego niektóre usługi są w stanie „zamaskowanym”. Myślę, że to oznacza, że „jest to lepsze niż„ wyłączenie ”, ponieważ usługi nie można uruchomić ani ręcznie, ani systemd”.
Jak mogę uzyskać więcej informacji o stanie jednostki usługowej?
Kto wprowadził jednostki w odpowiedni stan?
Próbowałem na przykład
sudo systemctl help dsmcad
- to wyświetla tylko documentation = ...
wiersz z pliku jednostkowego./etc/systemd/system/dsmcad.service
Uwaga: tutaj dokładnie wiem , czym jest usługa dsmcad i co robi, sam ją zainstalowałem. Bardziej interesuje mnie ogólne rozwiązanie.
mask
iunmask
poleceń, które mogą być używane zsystemctl
. Więc po prostu zróbsystemctl unmask name_of_service.service
.systemctl unmask name_of_service.service
całkowicie usunąć mój plik z definicji usługi/etc/systemd/system/
, więc teraz muszę go dodać ponownie. Jeśli znów się/etc/systemd/system
to tylko symboliczne linki usług. Należy dodać*.service
plik,/lib/systemd/system
z którego zostanie on połączony,/etc/systemd/system
jeślienable
usługa.mask
tworzy link do niego/dev/null
iunmask
usuwa go,/etc/systemd/system
i oczywiście nie ma znaczenia, czy ktoś tam umieści plik.hostname.service
jest maskowany jako nadmiarowy, ponieważsystemd
ustawia nazwę hosta (z / etc / hostname) bardzo wcześnie podczas uruchamiania.To ustawienie zapewnia pakiet systemowy Debiana.
Podobnie, Debian może teraz działać bez skryptu powłoki
halt
w systemie, zamiast tego jest obsługiwany przez systemd-shutdown ( tutaj kod źródłowy ).Jeśli usługa została zamaskowana ręcznie,
/etc/systemd/system
zamiast niej zostanie zainstalowana maska .Usługi są również maskowane, gdy są usuwane z Debian / Ubuntu . Nie wiem dlaczego.
źródło
Ponieważ żądasz informacji o stanie zamaskowanym, ważne jest, aby wspomnieć, że można to zaobserwować w usłudze, która po uruchomieniu miała zmodyfikowane definicje, przeładowała (systemctl daemon-reload), a nowy stan NIE jest w porządku . Jednym łatwym przykładem do zrozumienia jest następujący scenariusz:
W związku z tym stan maskowania może pochodzić z niewłaściwych definicji usług. W związku z tym użytkownik może wywołać stan zdemaskowany poprzez niewłaściwą edycję usługi.
Obserwacja: Nie jestem pewien, czy dzieje się to celowo, czy jest to zwykły błąd (opcja domyślna), ale udostępnienie ciekawych informacji może być interesujące
źródło