Dump-kommandoen
Hvis nogen beder dig om at vise hele konfigurationen af dit system, skal du bruge dump-kommandoen.
$ systemd --dump-configuration-itemsFilen dækker alle enheder, du har på systemet. Når en udvikler har denne fil tilgængelig, gennemgår personen det, du har, og prøver at finde de problemer, du står over for. Over og færdig. Du vil dog ikke læse denne artikel, hvis du vil lade en anden gøre alt. Lad os se, hvad du kan gøre med en service ad gangen og lære nogle tricks til at filtrere dine resultater.
Hierarkiet af systemd
For at blive effektiv skal du indse, at du inden for systemd har hierarki, og du kan indstille hver tjeneste til at afhænge af og / eller vente på andre tjenester. De forskellige måder, du gør dette på, er tydeligt i servicefilerne. De forskellige udsagn, du har, er 'Ønsker', 'Påkrævet', 'Før' og 'Efter'. For effektiv analyse kan du bruge disse til at se, om din enhed er nede på grund af afhængigheder. Du kan derefter spore tilbage til, hvor det underliggende problem ligger. Her er et eksempel på dette.
$ systemctl listeafhængighed - før xpra.serviceUdskriften viser de andre enheder, der xpra.service stole på. I dette tilfælde er de andre enheder aktive, så vi er nødt til at fokusere på, hvorfor selve enheden er brudt. Eksemplet manglede en certifikatfil.
Den vigtigste anvendelse af dette er at undersøge, om din tjeneste mangler afhængigheder, brug kommandoen på denne måde.
$ systemctl listeafhængighed xringdResultatet er en lang liste, der er bekvemt organiseret i et træ og viser alle tjenester som grønne eller røde, hvis noget er galt. Du kan også se afhængighederne i servicefilen. Åbn filen ved hjælp af din yndlingseditor eller brug systemctl, som åbner filen med standardeditoren.
Notering af aktive tjenester
Når du vil undersøge et system, skal du vide, hvordan enhederne passer sammen. For at gøre dette har du en række muligheder for at udskrive detaljerne. Du kan angive, hvilke systemer der er optaget, mislykkedes og så videre. Endnu vigtigere kan du angive, hvordan de er sammensat, hvilken enhed, service osv. den aktuelle enhed afhænger af. Hovedkommandoen til at gøre dette er systemctl, indstillingerne er nyttige til at indsnævre dit specifikke problem.
For at få den korrekte brug af systemctl, se nøje på mulighederne for kommandoen. Der er muligheder for at vælge nøjagtigt, hvad du har brug for, især med hensyn til tilstanden for eventuelle tjenester. Her leder vi efter tjenester, der har problemer.
$ systemctl liste-enhed-filer - type = serviceDenne liste er også lang, og du skal rulle gennem alle tjenesterne for at finde det, du leder efter. Med nogle flere parametre kan du filtrere efter en bestemt eller dem, der er deaktiveret. Kommandoen nedenfor finder alle maskerede enheder.
$ systemctl liste-enhed-filer --type = service --stat = maskeretMaskerede tjenester blokeres, så andre tjenester ikke kan starte dem, selvom den anden tjeneste har brug for dem. Dette kan bruges til at sikre, at du ikke har modstridende tjenester kørende. Ofte maskeres mange tjenester af din pakkehåndtering, når du fjerner pakken. Du kan fjerne servicefilen helt, hvis du ønsker det efter at have fjernet en tjeneste. Det er også muligt, at det ødelægger mange tjenester, du ønsker, så sørg for at vide, om du har brug for de maskerede tjenester.
Nogle tjenester maskeres af processer, og du har ikke altid til hensigt, at tjenesten skal maskeres. Når dette er sket med dit system, er den første handling, der skal udføres, at afmaske ved hjælp af systemctl. Dette er dog ikke altid muligt, så du skal fjerne linket i den rette mappe. I de fleste systemer vil dette være lib / systemd / system. Før du gør det, skal du kontrollere, at filen faktisk er et link til / dev / null.
$ ls -l lib / systemd / system> | grep null
Når du er sikker på, at du vil fjerne dette link, skal du fjerne det med rm eller fjerne linket.
$ rm / lib / systemd / system / udisks2.serviceNu hvor du ved, hvordan du gør det, skal du høre denne advarsel: mange gange er det nødvendigt at have dette link derinde. Tag lvm2 som et eksempel, det er maskeret fra drift, så det ikke forstyrrer det nye system, hvor lvm2 kommer så mange små tjenester. Se resultatet af:
$ systemctl status lvm2 *Fjernelse af linket kan forårsage kaos på dit system, fordi lvm2 i sig selv har brug for det for at undgå konflikter. Dette er kun et eksempel, så pas på, inden du går videre.
Konklusion
Når du vil liste tjenester i systemd, skal du først reflektere over, hvad du leder efter i din søgen. Leder du efter en tjeneste, du har brug for, eller ser du, at du har for mange tjenester. Uanset hvad skal du tilpasse din forespørgsel til dine særlige behov. Systemd ser forvirrende ud i starten, men når man ser nærmere på, bruger det hele en ligetil måde til at samle opstart, så tjenester kan starte parallelt, hvor systemet har brug for det, samtidig med at alle tjenester kan vente på den specifikke tjeneste, de er afhængige af.