systemd

Hvordan liste opp tjeneste med systemd

Hvordan liste opp tjeneste med systemd
Denne artikkelen kan være en kommando kort, men den resulterende utskriften er veldig lang.

Dump-kommandoen

Hvis noen ber deg om å vise hele konfigurasjonen av systemet ditt, bruk dump-kommandoen.

$ systemd - dump-configuration-items

Filen dekker alle enhetene du har på systemet. Når en utvikler har denne filen tilgjengelig, vil personen gå gjennom det du har og prøve å finne problemene du står overfor. Over og ferdig. Imidlertid ville du ikke lese denne artikkelen hvis du skulle la noen andre gjøre alt. La oss se hva du kan gjøre med en tjeneste om gangen og lære noen triks for å filtrere resultatene dine.

Hierarkiet til systemd

For å bli effektiv må du innse at du i systemd har hierarki, og du kan stille hver tjeneste til å være avhengig og / eller vente på andre tjenester. De forskjellige måtene du gjør dette fremgår av tjenestefilene. De forskjellige utsagnene du har er 'Ønsker', 'Påkrevd', 'Før' og 'Etter'. For effektiv analyse kan du bruke disse til å se om enheten din er nede på grunn av avhengigheter. Du kan deretter spore tilbake til hvor det underliggende problemet ligger. Her er et eksempel på dette.

$ systemctl listeavhengigheter - før xpra.service

Utskriften viser de andre enhetene som xpra.tjenesten stole på. I dette tilfellet er de andre enhetene aktive, så vi må fokusere på hvorfor enheten er ødelagt. Eksemplet manglet en sertifikatfil.

Den viktigste bruken av dette er å undersøke om tjenesten din mangler avhengigheter, bruk kommandoen på denne måten.

$ systemctl listeavhengighet xringd

Resultatet er en lang liste, beleilig organisert i et tre og viser alle tjenester som grønne eller røde hvis noe er galt. Du kan også se avhengighetene i tjenestefilen. Åpne filen ved hjelp av favorittredigeringsprogrammet ditt, eller bruk systemctl, som åpner filen med standardredigeringsprogrammet.

Oppføring av aktive tjenester

Når du vil undersøke et system, må du vite hvordan enhetene passer sammen. For å gjøre dette har du en rekke alternativer for å skrive ut detaljene. Du kan liste opp hvilke systemer som er opptatt, mislyktes og så videre. Enda viktigere er at du kan liste opp hvordan de er satt sammen, hvilken enhet, service osv. gjeldende enhet avhenger av. Hovedkommandoen for å gjøre dette er systemctl, alternativene er nyttige for å begrense ditt spesifikke problem.

For å få riktig bruk av systemctl, se nøye på alternativene for kommandoen. Det er muligheter for å velge nøyaktig hva du trenger, spesielt når det gjelder tilstanden til eventuelle tjenester. Her ser vi etter tjenester som har problemer.

$ systemctl liste-enhetsfiler - type = tjeneste

Denne listen er også lang, og du må bla gjennom alle tjenestene for å finne det du leter etter. Med noen flere parametere kan du filtrere etter en bestemt eller de som er deaktivert. Kommandoen nedenfor finner alle maskerte enheter.

$ systemctl liste-enhetsfiler --type = tjeneste --stat = maskert

Maskerte tjenester er blokkert slik at andre tjenester ikke kan starte dem, selv om den andre tjenesten trenger dem. Dette kan brukes til å sikre at du ikke har motstridende tjenester som kjører. Vanligvis maskeres mange tjenester av pakkelederen din når du fjerner pakken. Du kan fjerne tjenestefilen helt hvis du ønsker det etter at du har fjernet en tjeneste. Det er også mulig at det ødelegger mange tjenester du vil ha, så sørg for at du vet om du trenger maskerte tjenester.

Noen tjenester er maskert av prosesser, og du har ikke alltid tenkt at tjenesten skal maskeres. Når dette har skjedd med systemet ditt, er den første tiltaket å avmaske ved hjelp av systemctl. Dette er imidlertid ikke alltid mulig, så du må ta bort lenken i riktig katalog. I de fleste systemer vil dette være lib / systemd / system. Før du gjør det, må du kontrollere at filen faktisk er en lenke til / dev / null.

$ ls -l lib / systemd / system> | grep null

Når du er sikker på at du vil fjerne denne lenken, kan du fjerne den med rm eller fjerne tilknytningen.

$ rm / lib / systemd / system / udisks2.service

Nå som du vet hvordan du gjør det, hør denne advarselen: mange ganger er det nødvendig å ha denne lenken der inne. Ta lvm2 som et eksempel, det er maskert fra drift, så det vil ikke forstyrre det nye systemet, der lvm2 kommer så mange små tjenester. Se resultatet av:

$ systemctl status lvm2 *

Hvis du fjerner lenken, kan det ødelegge systemet ditt fordi lvm2 selv trenger det for å unngå konflikter. Dette er bare et eksempel, så pass opp før du går videre.

Konklusjon

Når du vil liste opp tjenester i systemd, må du først reflektere over hva du leter etter i din søken. Leter du etter en tjeneste du trenger, eller ser du at du har for mange tjenester. Uansett må du tilpasse spørringen til dine spesielle behov. Systemd ser forvirrende ut i begynnelsen, men når du ser nærmere på, bruker det en grei måte å forene oppstart, slik at tjenester kan starte parallelt der systemet trenger det, samtidig som alle tjenester kan vente på den spesifikke tjenesten de er avhengig.

Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...