systemctl: 12 commando's die Linux beheersen 🚀
De systemctl-opdracht heeft verschillende functies die vaak over het hoofd worden gezien. Naast het starten en stoppen van services in Linux, kun je ook een lijst maken van geïnstalleerde services en hun status controleren. Laten we eens een korte review doen! 🚀
Wat is de Systemctl-opdracht?
De systemctl-opdracht is de centrale beheertool voor het systemd init-systeem, vooral bekend als de tool die gebruikt wordt om services te starten en te stoppen. Maar er is veel meer aan de hand, zoals blijkt uit de manpagina met meer dan 1600 regels. 📖
Omdat systemctl een beheertool is en niet alleen een servicestarter, kunt u het gebruiken om toegang te krijgen tot nuttige informatie over uw systeem en de systemd-services.
De meeste Linux-distributies gebruiken systemd, maar sommige hebben ervoor gekozen om het traditionele SystemV init-systeem te behouden. Als je niet zeker weet welk systeem jouw distributie gebruikt, kun je dat eenvoudig achterhalen. We gebruiken de opdracht stat om het init-bestand te bekijken.
staat /sbin/init

Het uitvoerbare bestand /sbin/init is het eerste proces dat wordt gestart in SystemV-gebaseerde distributies. In systemd-gebaseerde distributies verwijst een symbolische link met die naam naar het systemd-bestand.
De eerste regel laat zien dat op deze Ubuntu-testmachine /sbin/init een symbolische link is naar het bestand /lib/systemd/systemd. Het is duidelijk dat deze Linux-installatie systemd gebruikt. Als dit een op SystemV gebaseerde distributie was, zou de regel simpelweg "Bestand: /sbin/init" bevatten.
Diensten ondervragen met systemctl
Services worden gedefinieerd in unit-bestanden, en u zult het woord "unit" verspreid over systemctl-opties tegenkomen. Zo kunnen we bijvoorbeeld een lijst met services verkrijgen met de opdracht list-units met behulp van de optie –type.
systeemctl lijst-eenheden --type=service

De uitvoer wordt weergegeven in de bestandsviewer, zodat u kunt navigeren en de toets / kunt gebruiken om te zoeken.
- Eenheid: De naam van het eenheidsbestand.
- Dragen:Als het eenheidsbestand van de service zonder syntaxisfouten in het geheugen is gelezen, bevat deze kolom 'loaded'. Dit betekent niet dat de service actief is.
- Bezit: Een overzicht van of een service actief is. Een actieve service is mogelijk niet actief.
- Sub: Een gedetailleerder overzicht van of een service actief is. Een actieve service kan bijvoorbeeld een timer hebben en de laatste uitvoering hebben beëindigd.
- Beschrijving: Een tekstregel die bedoeld is om de service te identificeren of beschrijven.
Het scherm toont alleen actieve services. Om alle services te zien, moeten we de optie –all gebruiken.
systeemctl lijst-eenheden --alle --type=service

Als het bekijken van alles te overweldigend is, kunnen we de uitvoer filteren met de optie –state.
systeemctl lijst-eenheden --type=service --status=draaiend

De statusopties accepteren 'actief', 'gestopt', 'ingeschakeld', 'uitgeschakeld' en 'mislukt'.
Gebruik de optie –failed om u te concentreren op mislukte services.
systeemctl lijst-eenheden --mislukt

Er zijn geen defecte schijven op deze computer.
Als u mislukte services ziet, gebruikt u de optie list-dependencies om te controleren op niet-vervulde afhankelijkheden.
systeemctl lijst-afhankelijkheden sshd.service

Afhankelijkheden hebben een gekleurde cirkel die hun status aangeeft. Dit kan zijn:
- Witte Cirkel: Inactief of in onderhoud
- Groene Punt: Bezit.
- Witpunt: Deactiveren.
- Rode stip: Mislukt of fout.
Als u wilt controleren of een enkele service is ingeschakeld, gebruikt u de opdracht is-enabled en geeft u de naam van het eenheidsbestand van de service op.
systeemctl es-enabled htg-example.service

Diensten beheren met systemctl
Het gebruik van systemctl voor het beheren van services is heel eenvoudig en volgt dezelfde opdrachtopmaak als de opdrachten die we tot nu toe hebben gezien. Het grootste verschil is dat je sudo moet gebruiken om de servicestatus te wijzigen. We hebben dit tot nu toe niet gedaan, omdat we alleen over de servicestatus hebben gerapporteerd.
Om een service te starten gebruikt u de opdracht start gevolgd door de servicenaam.
Ik zweet systeemctl begin htg-voorbeeld.dienst

Als alles goed gaat, keert u stilletjes terug naar de opdrachtprompt. Als u liever een positieve bevestiging wilt, kunt u dit verifiëren met de opdracht status.
Ik zweet systeemctl toestand htg-voorbeeld.dienst

Het stoppen van een service is net zo eenvoudig als het starten ervan.
Ik zweet systeemctl stop htg-voorbeeld.dienst

U kunt een service opnieuw starten zonder dat u eerst de twee stappen hoeft te doorlopen om de service te stoppen en opnieuw te starten. herstartopdracht regelt alles voor u.
Ik zweet systeemctl opnieuw opstarten htg-voorbeeld.dienst

Als u wilt dat een service bij het opstarten wordt gestart, moet u deze inschakelen.
Ik zweet systeemctl inschakelen htg-voorbeeld.dienst

Merk op dat dit alleen de service specificeert die bij het opstarten moet worden gestart; deze wordt niet direct gestart. Als u dat wilt, voeg dan de optie --now toe.
Ik zweet systeemctl inschakelen --nu htg-voorbeeld.dienst

Wanneer u een service niet meer nodig hebt bij het opstarten, schakelt u deze uit.
Ik zweet systeemctl uitzetten htg-voorbeeld.dienst

U kunt de opdracht journalctl, een ander onderdeel van systemd, gebruiken om te zoeken naar items die betrekking hebben op uw service. Met de optie -u (eenheid) kunt u de service opgeven waarin u geïnteresseerd bent. Met de optie -S (sinds) kunt u items weergeven die zich sinds het opgegeven tijdstip hebben voorgedaan.
journalctl -S "08:00:00" -of htg-voorbeeld.dienst

Elk hulpmiddel dat u helpt informatie verkrijgen over de operatie De interne functies van je Linux-distributie zijn van onschatbare waarde, zowel voor dagelijks beheer als voor het oplossen en diagnosticeren van problemen. De systemctl-opdracht is niet één tool. Het is eerder een schat aan gespecialiseerde tools, en het is de moeite waard om ermee vertrouwd te raken. 🔧🛠️