Systemd brengt het concept van systemd-eenheden in Linux. voor e.g., service-eenheid, doeleenheid, montage-eenheid enz. zijn eenheidstypen met bestandsextensie als .onderhoud, .doelwit, .respectievelijk monteren. Het configuratiebestand dat deze eenheden vertegenwoordigt, wordt opgeslagen in de mappen: /usr/lib/systemd/system/, /run/systemd/system/, /etc/systemd/system/
Eerdere versies van Red Hat Enterprise Linux (RHEL) gebruikten init-scripts. Deze scripts zijn geschreven in BASH en bevonden zich in de map “/etc/rc.d/init.d/”. Dit zijn scripts die worden gebruikt om de services en daemons te besturen. Later in RHEL 7 werden service-eenheden geïntroduceerd om de init-scripts te vervangen. Fedora, een upstream-besturingssysteem van Red Hat Enterprise Linux, is begonnen met het gebruik van de systemd vanaf de Fedora-versie 15.
Service units hebben .service-bestandsextensies en hebben vergelijkbare rollen als init-scripts. "Systemd" gebruikt het hulpprogramma "systemctl" om systeemservices te beheren. Het kan worden gebruikt om deze services te bekijken, starten, stoppen, herstarten, in- of uitschakelen.
Voordelen van Systemd Over Init-systeem
- Met systemd kunnen we noodzakelijke services voorrang geven boven minder belangrijke services.
- Cgroups worden door systemd gebruikt om processen bij te houden en de uitvoering te controleren.milieu.
- Systemd ondersteunt nog steeds het oude init-proces en heeft meer controle.
- Systemd kan omgaan met dynamische systeemconfiguratiewijzigingen.
Wat gaan we dekken??
In deze gids leren we over het beheren van systemd-processen. We zullen zien hoe u opstartservices bij het opstarten in- en uitschakelt en hoe u servicebewerkingen uitvoert zoals starten, stoppen, opnieuw opstarten, enz. We hebben de onderstaande oefeningen uitgevoerd op Fedora 30-werkstations, die het meest van toepassing zijn op andere Linux-besturingssystemen.
Lijst met opstartservices bij opstarten in Fedora Linux
De oude SysV-methode gebruikt de service en chkconfig opdrachten om de services te beheren. Deze commando's zijn nu vervangen door de systemd-commando's zoals: systemctl. Laten we enkele van de bewerkingen van "systemctl" op verschillende services in Linux bekijken.
1. Gebruik de onderstaande opdracht om alle services weer te geven die op uw systeem worden uitgevoerd, samen met hun status (ingeschakeld of uitgeschakeld):
$ sudo systemctl lijst-eenheid-bestanden --type=service
Een service kan drie statussen hebben: 1) ingeschakeld 2) uitgeschakeld 3) statisch
Een ingeschakelde service heeft een symbolische link in a .wil directory, terwijl een uitgeschakelde service er geen heeft. Een statische service heeft geen installatiegedeelte in het bijbehorende init-script. Het kan dus niet worden in- of uitgeschakeld.
Om meer details over de services te krijgen, moet de onderstaande opdracht worden gebruikt:.
$ sudo systemctl -at service
Samenvatting van de bovenstaande kolomnamen:
UNIT - naam van systeemeenheid (hier een servicenaam).
LOAD - Geef aan of de systemd-eenheid correct is geladen of niet.
ACTIEF - Status van de unit (hier service).
SUB - Een substatus van een unitactivering.
BESCHRIJVING - Een korte informatie over het apparaat.
We kunnen ook het volgende commando gebruiken:
$ sudo ls /lib/systemd/system/*.onderhoudof
$ sudo /etc/systemd/system/*.onderhoud
De “/etc/inittab” wordt nu vervangen door "/etc/systemd/system/" in systeemd. Deze map bevat nu de symbolische links naar de bestanden in de map “/usr/lib/systemd/system”. De init-scripts worden geplaatst in de "/usr/lib/systemd/system". Een service moet worden toegewezen aan: "/etc/systemd/system/" om het te starten bij het opstarten van het systeem. Voor dit doel wordt het systemctl commando gebruikt in Fedora en andere nieuwste Linux-systemen.
2. Laten we het onderstaande voorbeeld bekijken van het inschakelen van de httpd-service:
$ sudo systemctl httpd inschakelen.onderhoud
We kunnen ook de onderstaande opdracht gebruiken om alle ingeschakelde services te filteren:
$ sudo systemctl lijst-eenheid-bestanden | grep ingeschakeld
of gebruik het commando:
$ sudo systeemctl | grep rennen
3. Gebruik de opdracht om alle actieve (lopende) services weer te geven:
4. Om te zien welke services zijn ingeschakeld om automatisch te starten bij het opstarten van het systeem, kunnen we ook de volgende opdracht gebruiken:
$ sudo systemctl list-unit-files --type=service --state=ingeschakeld --all
5. Op dezelfde manier kunnen we controleren of de services zijn uitgeschakeld om bij het opstarten te beginnen met de opdracht:
$ sudo systemctl list-unit-files --type=service --state=disabled --all
6. We kunnen ook zien hoe lang elke service duurt bij het opstarten:
$ sudo systemd-analyse schuld
7. Gebruik de opdracht om te controleren of een service is ingeschakeld voor automatisch starten bij het opstarten:
$ sudo systemctl is ingeschakeld xxxZet de naam van de dienst in plaats van xxx. E.g., in het geval van de httpd-service is het commando:
$ sudo systemctl is ingeschakeld httpd.onderhoudof
$ sudo systemctl is ingeschakeld httpd
8. Gebruik de opdracht om de status van een service te controleren:
$ sudo systemctl-status xxx.onderhoudOm bijvoorbeeld de status van de sshd-service te controleren:
$ sudo systemctl status sshd.onderhoud
9. Voer de onderstaande opdracht uit om te controleren of een service actief is of niet:
$ sudo systemctl is-actief xxx.onderhoudOm bijvoorbeeld de telnet-status te controleren:
$ sudo systemctl is-actief telnet.onderhoud
10. Gebruik de opdracht om een dode of inactieve service te starten:
$ sudo systemctl start xxx.onderhoudOm bijvoorbeeld een sshd-service te starten:
$ sudo systemctl start sshd
11. Een service uitschakelen bij het opstarten van het systeem
Om bijvoorbeeld de httpd-service uit te schakelen:
$ sudo systemctl httpd uitschakelen.onderhoudof
$ sudo systemctl httpd uitschakelen
12. Een actieve service opnieuw starten
$ sudo systemctl herstart xxx.onderhoudGebruik de opdracht om de sshd-service opnieuw te starten:
$ sudo systemctl herstart sshdAls de service nog niet actief is, wordt deze gestart.
13. Een actieve service opnieuw laden
$ sudo systemctl herlaad xxx.onderhoudLaad bijvoorbeeld de httpd-service opnieuw met:
$ sudo systemctl herlaad httpd.onderhoud
Met deze opdracht wordt de configuratie van een specifieke service opnieuw geladen. Om het unitconfiguratiebestand van systemd opnieuw te laden, hebben we de opdracht nodig:
$ sudo systemctl daemon-reload14. Om alle afhankelijkheden van een service op te sommen:
$ sudo systemctl lijst-afhankelijkheden xxx.onderhoudIn het geval van de httpd-service is het commando:
$ sudo systemctl lijst-afhankelijkheden httpd.onderhoud
Conclusie
In deze handleiding hebben we verschillende manieren gezien om services te beheren met systemd-hulpprogramma, zoals services inschakelen tijdens het opstarten, starten en stoppen, enz. Als je gewend was aan het servicecommando van het oude Sysvinit, zou je moeten overschakelen naar systemd omdat het meer functies heeft en het het standaard init-systeem is in nieuwere versies van Fedora, RHEL en de meeste andere grote Linux-distributies.