Systemd ger konceptet systemd-enheter i Linux. Främre del.g., serviceenhet, målenhet, monteringsenhet etc. är enhetstyper med filtillägg som .service, .mål, .montera respektive. Konfigurationsfilen som representerar dessa enheter lagras i katalogerna: / usr / lib / systemd / system /, / run / systemd / system /, / etc / systemd / system /
Tidigare versioner av Red Hat Enterprise Linux (RHEL) använde init-skript. Dessa skript skrevs i BASH och fanns i katalogen “/ etc / rc.d / init.d / ”. Det här är skript som används för att styra tjänsterna och demonerna. Senare i RHEL 7 introducerades serviceenheter för att ersätta init-skript. Fedora, som är ett uppströms operativsystem för Red Hat Enterprise Linux, har börjat använda systemd från Fedora version 15.
Serviceenheter har .servicefiltillägg och har liknande roller som init-skript. "Systemd" använder "systemctl" för att hantera systemtjänster. Den kan användas för att visa, starta, stoppa, starta om, aktivera eller inaktivera dessa tjänster.
Fördelar med Systemd jämfört med Init System
- Med systemd kan vi prioritera nödvändiga tjänster framför mindre betydelsefulla tjänster.
- Cgroups används av systemd för att hålla reda på processer och kontrollera utförandet.miljö.
- Systemd stöder fortfarande den gamla init-processen och har mer kontroll.
- Systemd kan hantera ändringar av dynamiska systemkonfigurationer.
Vad ska vi täcka?
I den här guiden lär vi oss att hantera systemd-processer. Vi kommer att se hur du aktiverar och inaktiverar starttjänster vid start och hur du utför serviceåtgärder som start, stopp, omstart osv. Vi har utfört nedanstående övningar på Fedora 30-arbetsstationer, som är mest tillämpliga på andra Linux-operativsystem.
Lista starttjänster vid start i Fedora Linux
Den gamla SysV-metoden använder tjänsten och chkconfig kommandon för att hantera tjänsterna. Dessa kommandon ersätts nu med systemd-kommandon som systemctl. Låt oss se några av funktionerna i "systemctl" på olika tjänster i Linux.
1. För att lista alla tjänster som körs på ditt system, tillsammans med deras tillstånd (aktiverat eller inaktiverat), använd kommandot nedan:
$ sudo systemctl list-enhetsfiler --typ = tjänst
En tjänst kan ha tre tillstånd: 1) aktiverad 2) inaktiverad 3) statisk
En aktiverad tjänst har en symlänk i en .vill ha katalog, medan en funktionshindrad tjänst inte har en. En statisk tjänst har inte ett installationsavsnitt i motsvarande init-skript. Så det kan inte aktiveras eller inaktiveras.
För att få mer information om tjänsterna ska kommandot nedan användas.
$ sudo systemctl -at-tjänst
Sammanfattning av ovanstående kolumnnamn:
UNIT - systemd enhetsnamn (här ett tjänstnamn).
LOAD - Ange om systemd-enheten var korrekt laddad eller inte.
AKTIV - Enhetens tillstånd (här service).
SUB - En delstatus för en enhetsaktivering.
BESKRIVNING - En kort info om enheten.
Vi kan också använda följande kommando:
$ sudo ls / lib / systemd / system / *.serviceeller
$ sudo / etc / systemd / system / *.service
De “/ Etc / inittab” ersätts nu med “/ Etc / systemd / system /” i systemd. Den här katalogen innehåller nu symlänkar till filerna i katalogen “/ Usr / lib / systemd / system”. Init-skripten placeras i “/ usr / lib / systemd / system”. En tjänst måste mappas till “/ Etc / systemd / system /” för att starta den vid systemstart. För detta ändamål används systemctl-kommandot i Fedora och andra senaste Linux-system.
2. Låt oss se exemplet nedan för att aktivera httpd-tjänsten:
$ sudo systemctl aktivera httpd.service
Vi kan också använda kommandot nedan för att filtrera alla aktiverade tjänster:
$ sudo systemctl list-enhetsfiler | grep aktiverat
eller använd kommandot:
$ sudo systemctl | grep kör
3. För att lista alla aktiva (körande) tjänster, använd kommandot:
4. För att se vilka tjänster som är aktiverade för att starta automatiskt vid systemstart kan vi också använda följande kommando:
$ sudo systemctl list-unit-files --type = service --state = enabled - all
5. På samma sätt kan vi kontrollera tjänster som är inaktiverade för att starta vid start med kommandot:
$ sudo systemctl list-enhetsfiler --typ = tjänst --stat = avaktiverad - allt
6. Vi kan också se vilken tid varje tjänst tar vid start:
$ sudo systemd-analysera skulden
7. För att kontrollera om en tjänst är aktiverad för autostart vid start, använd kommandot:
$ sudo systemctl är aktiverat xxxSätt namnet på tjänsten i stället för xxx. E.g., i fallet med httpd-tjänsten kommer kommandot att vara:
$ sudo systemctl är aktiverat httpd.serviceeller
$ sudo systemctl är aktiverat httpd
8. För att kontrollera status för en tjänst, använd kommandot:
$ sudo systemctl status xxx.serviceTill exempel för att kontrollera status för sshd-tjänsten:
$ sudo systemctl status sshd.service
9. För att kontrollera om en tjänst körs eller inte, kör bara kommandot nedan:
$ sudo systemctl är aktiv xxx.serviceTill exempel för att kontrollera telnet-status:
$ sudo systemctl är aktivt telnet.service
10. För att starta en död eller inaktiv tjänst, använd kommandot:
$ sudo systemctl starta xxx.serviceTill exempel för att starta en sshd-tjänst:
$ sudo systemctl starta sshd
11. För att inaktivera en tjänst vid systemstart
Till exempel för att inaktivera httpd-tjänsten:
$ sudo systemctl inaktivera httpd.serviceeller
$ sudo systemctl inaktivera httpd
12. För att starta om en löpande tjänst
$ sudo systemctl starta om xxx.serviceFör att starta om sshd-tjänsten, använd kommandot:
$ sudo systemctl starta om sshdOm tjänsten inte redan körs kommer den att startas.
13. För att ladda om en löpande tjänst
$ sudo systemctl ladda om xxx.serviceLadda till exempel httpd-tjänsten med:
$ sudo systemctl ladda om httpd.service
Detta kommando laddar om konfigurationen för en viss tjänst. För att ladda om enhetens konfigurationsfil för systemd behöver vi kommandot:
$ sudo systemctl daemon-reload14. För att lista alla beroenden för en tjänst:
$ sudo systemctl listberoende xxx.serviceNär det gäller httpd-tjänsten kommer kommandot att vara:
$ sudo systemctl listberoende httpd.service
Slutsats
I den här guiden har vi sett olika sätt att hantera tjänster med systemd-verktyg som att aktivera tjänster vid starttid, starta och stoppa dem, etc. Om du var van vid servicekommandot för gamla Sysvinit bör du byta till systemd eftersom det har fler funktioner och det är standardinit-systemet i nyare versioner av Fedora, RHEL och de flesta andra stora Linux-distributioner.