systemd

Sådan liste service med systemd

Sådan liste service med systemd
Denne artikel kan være en kommando kort, men den resulterende udskrift er meget lang.

Dump-kommandoen

Hvis nogen beder dig om at vise hele konfigurationen af ​​dit system, skal du bruge dump-kommandoen.

$ systemd --dump-configuration-items

Filen 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.service

Udskriften 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 xringd

Resultatet 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 = service

Denne 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 = maskeret

Maskerede 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.service

Nu 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.

Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...