systemd

Hur listar jag service med systemd

Hur listar jag service med systemd
Den här artikeln kan vara ett kommando kort men den resulterande utskriften är väldigt lång.

Dump-kommandot

Om någon ber dig att visa hela systemets konfiguration, använd dump-kommandot.

$ 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. Över och klar. Du skulle dock 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 åt gången och lära oss 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 att varje tjänst ska bero på och / eller vänta på andra tjänster. De olika sätten du gör detta framgår av servicefilerna. De olika uttalandena 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 beroende. Du kan sedan spåra tillbaka till var det bakomliggande problemet ligger. Här är ett exempel på detta.

$ systemctl listberoende - före xpra.service

Utskriften visar de andra enheterna som xpra.tjänsten förlitar sig på. I det här fallet är de andra enheterna aktiva, så vi måste fokusera på varför enheten ä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 på detta sätt.

$ systemctl listberoende xringd

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

Listar 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 upptagen, misslyckade och så vidare. Ännu viktigare är att du kan lista hur de är sammansatta, 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å rätt 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 tjänsterna. Här letar vi efter tjänster som har problem.

$ systemctl list-enhetsfiler --typ = tjänst

Denna lista ä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 specifik eller de som är inaktiverade. Kommandot nedan hittar alla enheter som är maskerade.

$ systemctl list-enhetsfiler --typ = tjänst --stat = maskerad

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. Vanligtvis 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 du har tagit bort en tjänst. Det är också möjligt att det förstör många tjänster du vill ha, så se till att du vet om du behöver de maskerade tjänsterna.

Vissa tjänster maskeras av processer och du tänker inte alltid maskera tjänsten. När detta har hänt ditt system är den första åtgärden att ta bort att maskera 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 det att vara lib / systemd / system. Innan du gör det, kontrollera att filen faktiskt är 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 du 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 är maskerat 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 din strävan. Letar du efter en tjänst du behöver eller ser du att du har för många tjänster. Hur som helst måste du anpassa din fråga till dina specifika behov. Systemd ser förvirrande ut i början men när du tittar närmare använder allt ett enkelt sätt för att förena uppstart så att tjänster kan starta parallellt där systemet behöver det samtidigt som alla tjänster kan vänta på den specifika tjänst de är beroende av.

Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...
Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...