systemctl: 12 kommandon som bemästrar Linux 🚀
Kommandot systemctl har flera funktioner som ofta förbises. Förutom att starta och stoppa tjänster i Linux kan du också lista installerade tjänster och kontrollera deras status. Låt oss göra en snabb översikt! 🚀
Vad är Systemctl-kommandot?
Systemctl-kommandot är det centrala hanteringsverktyget för systemd init-systemet, främst känt som verktyget som används för att starta och stoppa tjänster. Men det finns mycket mer i det, vilket framgår av dess manualsidan som har mer än 1600 rader. 📖
Eftersom systemctl är ett hanteringsverktyg, inte bara en tjänstestartare, kan du använda det för att få tillgång till användbar information om ditt system och dess systemd-tjänster. 💻
De flesta Linuxdistributioner har anammat systemd, men vissa har valt att behålla det traditionella SystemV init-systemet. Om du är osäker på vilket din distribution använder är det lätt att ta reda på det. Vi använder stat-kommandot för att titta på init-filen.
statistik /sbin/init

Den körbara filen /sbin/init är den första processen som startas i SystemV-baserade distributioner. I systemd-baserade distributioner pekar en symbolisk länk med det namnet till systemd-filen.
Den första raden i utdata visar att på denna Ubuntu-testmaskin är /sbin/init en symbolisk länk till filen /lib/systemd/systemd. Denna Linux-installation använder uppenbarligen systemd. Om detta vore en SystemV-baserad distribution skulle raden helt enkelt innehålla "Fil: /sbin/init".
Förhörstjänster med systemctl
Tjänster definieras i enhetsfiler, och du kommer att se ordet "unit" utspritt över systemctl-alternativen. Som ett exempel kan vi hämta en lista över tjänster med kommandot list-units med hjälp av alternativet –type.
systemctl lista-enheter --typ=tjänst

Utdata visas i filvisaren, så att du kan navigera och använda / -tangenten för att söka.
- EnhetNamnet på enhetsfilen.
- BäraOm tjänstens enhetsfil lästes in i minnet utan syntaxfel kommer den här kolumnen att innehålla "loaded". Detta betyder inte att tjänsten är aktiv.
- TillgångEn översikt över om en tjänst är aktiv. En aktiv tjänst kanske inte körs.
- SubEn mer detaljerad vy över om en tjänst körs. Till exempel kan en aktiv tjänst vara schemalagd för en timer och ha avslutat sin senaste körning.
- BeskrivningEn textrad avsedd att identifiera eller beskriva tjänsten.
Displayen visar endast aktiva tjänster. För att se alla tjänster måste vi inkludera alternativet –all.
systemctl lista-enheter --alla --typ=tjänst

Om det är överväldigande att se allt kan vi filtrera utdata med alternativet –state.
systemctl lista-enheter --typ=tjänst --tillstånd=körs

Tillståndsalternativet accepterar körning, stoppad, aktiverad, inaktiverad och misslyckad.
För att fokusera på misslyckade tjänster, använd alternativet –misslyckades.
systemctl lista-enheter --misslyckades

Det finns inga trasiga hårddiskar på den här datorn.
Om du ser några misslyckade tjänster använder du alternativet list-dependencies för att kontrollera om det finns ouppfyllda beroenden.
systemctl lista-beroenden sshd.service

Beroenden har en färgkodad cirkel som representerar deras status. Detta kan vara:
- Vit cirkelInaktiv eller under underhåll
- Grön prickTillgång.
- Vit punktAvaktiverar.
- Röd prickMisslyckades eller fel.
För att kontrollera om en enskild tjänst är aktiverad, använd kommandot is-enabled och ange namnet på tjänstens enhetsfil.
systemctl es-aktiverad htg-example.service

Styra tjänster med systemctl
Att använda systemctl för att hantera tjänster är mycket enkelt och följer samma kommandoformat som de vi har sett hittills. Den största skillnaden är att du måste använda sudo för att göra ändringar i tjänstens status. Vi har inte gjort detta hittills eftersom vi bara har rapporterat om tjänstens status.
För att starta en tjänst, använd startkommandot följt av tjänstens namn.
Jag svettas systemctl start htg-exempel.service

Om allt går bra kommer du tyst att återgå till kommandotolken. Om du föredrar en positiv bekräftelse kan du verifiera detta med kommandot status.
Jag svettas systemctl status htg-exempel.service

Att stoppa en tjänst är lika enkelt som att starta den.
Jag svettas systemctl stopp htg-exempel.service

Du kan starta om en tjänst utan att behöva gå igenom tvåstegsprocessen att stoppa och sedan starta den. omstartskommando gör allt för dig.
Jag svettas systemctl starta om htg-exempel.service

Om du vill att en tjänst ska starta vid uppstart måste du aktivera den.
Jag svettas systemctl aktivera htg-exempel.service

Observera att detta bara anger vilken tjänst som ska startas vid uppstart; den startar den inte omedelbart. Om det är vad du vill, lägg till alternativet --now.
Jag svettas systemctl aktivera --nu htg-exempel.service

När du inte längre behöver en tjänst för att starta vid uppstart, inaktivera den.
Jag svettas systemctl inaktivera htg-exempel.service

Du kan använda kommandot journalctl, en annan del av systemd, för att söka efter poster relaterade till din tjänst. Alternativet -u (enhet) låter dig ange vilken tjänst du är intresserad av. Med alternativet -S (since) kan du visa poster som har inträffat sedan den angivna tidpunkten.
journalctl -S "08:00:00" -eller htg-exempel.service

Alla verktyg som hjälper dig få information om operationen Din Linuxdistributions interna funktioner kommer att vara ovärderliga, både för den dagliga hanteringen och för felsökning och diagnostisering av problem. Systemctl-kommandot är inte ett enda verktyg. Det är mer som en skattkammare av specialiserade verktyg, och det är väl värt att bekanta sig med. 🔧🛠️