den här artikeln kan vara ett kommando kort men den resulterande utskriften är väldigt lång.

dumpkommandot

om någon ber dig att visa hela konfigurationen av ditt system, använd dumpkommandot.

$ systemd –dump-configuration-items

filen täcker alla enheter du har på systemet. När en utvecklare har den här filen tillgänglig, kommer personen att gå igenom vad du har och försöka hitta de problem du står inför. Klart., Men du skulle inte läsa den här artikeln om du skulle låta någon annan göra allt. Låt oss se vad du kan göra med en tjänst i taget och lära dig några knep för att filtrera dina resultat.

hierarkin för systemd

för att bli effektiv måste du inse att du inom systemd har hierarki och du kan ställa in varje tjänst att bero på och / eller vänta på andra tjänster. De olika sätt du gör detta är uppenbart i tjänstefilerna. De olika uttalanden du har är ”vill”, ”krävs”, ”före” och ”efter”., För effektiv analys kan du använda dessa för att se om din enhet är nere på grund av beroenden. Du kan sedan spåra tillbaka till var det underliggande problemet ligger. Här är ett exempel på detta.

$ systemctl lista-beroenden-innan xpra.service

utskriften visar de andra enheterna som xpra.service lita på. I det här fallet är de andra enheterna aktiva, så vi behöver fokusera på varför enheten själv är trasig. Exemplet saknade en certifikatfil.,

den viktigaste användningen av detta är att undersöka om din tjänst saknar beroenden, använd kommandot så här.

$ systemctl list-beroenden xringd

resultatet är en lång lista, bekvämt organiserad i ett träd och visar alla tjänster som grönt eller rött om något är fel. Du kan också se beroenden i tjänstefilen. Öppna filen med din favoritredigerare eller använd systemctl, som öppnar filen med standardredigeraren.,

lista aktiva tjänster

När du vill undersöka ett system måste du veta hur enheterna passar ihop. För att göra detta har du ett antal alternativ för att skriva ut detaljerna. Du kan lista vilka system som är upptagna, misslyckades och så vidare. Ännu viktigare kan du lista hur de sätts ihop, vilken enhet, service etc. den aktuella enheten beror på. Huvudkommandot för att göra detta är systemctl, alternativen är användbara för att begränsa din specifika fråga.

för att få korrekt användning av systemctl, titta noga på alternativen för kommandot., Det finns alternativ att välja exakt vad du behöver, särskilt när det gäller tillståndet för alla tjänster. Här letar vi efter tjänster som har problem.

$ systemctl list-unit-files –type=service

den här listan är också lång och du måste bläddra igenom alla tjänster för att hitta det du letar efter. Med några fler parametrar kan du filtrera efter en viss eller de som är inaktiverade. Nedanstående kommando hittar alla enheter som maskeras.,

$ systemctl list-unit-files –type=service –state=masked

Maskerade tjänster blockeras så att andra tjänster inte kan starta dem, även om den andra tjänsten behöver dem. Detta kan användas för att säkerställa att du inte har motstridiga tjänster som körs. Ofta maskeras många tjänster av din pakethanterare när du tar bort paketet. Du kan ta bort servicefilen helt om du vill efter att ha tagit bort en tjänst. Det är också möjligt att det förstör en hel del tjänster som du vill så se till att du vet om du behöver maskerade tjänster.,

vissa tjänster maskeras av processer och du har inte alltid för avsikt att maskera tjänsten. När detta har hänt med ditt system, den första åtgärden att ta är att Avmaskera med systemctl. Detta är dock inte alltid möjligt så du måste ta bort länken i rätt katalog. I de flesta system kommer detta att vara lib / systemd / system. Innan du gör dock, kontrollera att filen är faktiskt en länk till / dev / null.,

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

När du är säker på att du vill ta bort den här länken, Ta bort den med rm eller ta bort länken.

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

nu när du vet hur man gör det, hör denna varning: många gånger är det nödvändigt att ha den här länken där. Ta lvm2 som ett exempel, det maskeras från Drift så det kommer inte att störa det nya systemet, där lvm2 kommer så många små tjänster., Se resultatet av:

$ systemctl status lvm2*

att ta bort länken kan orsaka kaos på ditt system eftersom lvm2 själv behöver det för att undvika konflikter. Detta är bara ett exempel, så se upp innan du går vidare.

slutsats

När du vill lista tjänster i systemd måste du först reflektera över vad du letar efter i ditt uppdrag. Letar du efter en tjänst du behöver eller ser du att du har för många tjänster. Hur som helst, du måste anpassa din fråga till dina särskilda behov., Systemd ser förvirrande först men när man tittar närmare, det hela använder ett enkelt sätt att förena start – up så Tjänster kan börja parallellt där systemet behöver det samtidigt som man kan ha varje tjänst vänta på den specifika tjänst de är beroende av.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *