Hvordan kan jeg få en liste over alle aktiverede
tjenester fra systemctl
?
Jeg ved at kommandoen systemctl
i sig selv viser alle tjenester, men jeg vil gerne kun få vist de aktiverede
tjenester.
systemctl list-unit-files | grep enabled
vil liste alle aktiverede filer.
Hvis du vil vide, hvilke af dem der i øjeblikket kører, skal du bruge systemctl | grep running
.
Brug den, du leder efter. Aktiveret betyder ikke, at den kører. Og kørende betyder ikke, at den er aktiveret. Det er to forskellige ting.
Aktiveret betyder, at systemet vil køre tjenesten ved næste opstart. Så hvis du aktiverer en tjeneste, skal du stadig starte den manuelt eller genstarte den, så den starter.
Kører betyder, at den faktisk kører lige nu, men hvis den ikke er aktiveret, vil den ikke genstarte, når du genstarter.
man systemctl
angiver:
--state=
Argumentet skal være en kommasepareret liste over enhedstilstande
LOAD
,SUB
ellerACTIVE
. Når du viser enheder, vises kun dem i de angivne tilstande. Brug--state=failed
for kun at vise enheder, der har fejlet.
Forklaring:
LOAD
: Angiver, om enhedsdefinitionen blev indlæst korrekt.
ACTIVE
: Enhedens aktiveringstilstand på højt niveau, dvs. en generalisering af SUB
.
SUB
: Værdierne afhænger af enhedens type.
Selvom du også kan bruge dette til kun at vise aktiverede
enheder med:
systemctl list-unit-files --state=enabled
Hvis en enhed er aktiveret
betyder det, at systemet vil starte den ved opstart. Selvom det at sætte noget til enabled
faktisk ikke også starter
det, så du skal gøre det manuelt, eller genstarte systemet efter at have sat det til enabled
.
Sådan får du en liste over alle systemd
-tjenester, der er i state=active
og sub=running
systemctl list-units --type=service --state=running
Sådan vises alle systemd
-tjenester, som er i state=active
og sub enten kører eller er afsluttet
systemctl list-units --type=service --state=active