SystemD bringer konseptet med SystemD -enheter i Linux. For e.g., serviceenhet, målenhet, monteringsenhet osv. er enhetstyper med filforlengelse som .service, .mål, .montering henholdsvis. Konfigurasjonsfilen som representerer disse enhetene er lagret i katalogene:/usr/lib/systemd/system/,/run/systemd/system/,/etc/SystemD/System/
Tidligere versjoner av Red Hat Enterprise Linux (RHEL) brukte init -skript. Disse skriptene ble skrevet i bash og var lokalisert i katalogen “/etc/rc.d/init.d/”. Dette er skript som brukes til å kontrollere tjenestene og demonene. Senere i RHEL 7 ble serviceenheter introdusert for å erstatte init -skriptene. Fedora, som er et oppstrøms OS av Red Hat Enterprise Linux, har begynt å bruke SystemD fra Fedora versjon 15.
Serviceenheter har .servicefilutvidelser og har lignende roller som init -skript. “SystemD” bruker “SystemCTL” -verktøyet for å administrere systemtjenester. Det kan brukes til å se, starte, stoppe, starte på nytt, aktivere eller deaktivere disse tjenestene.
Fordeler med systemd over init -systemet
Hva vil vi dekke?
I denne guiden vil vi lære om å håndtere SystemD -prosesser. Vi vil se hvordan du aktiverer og deaktiverer oppstartstjenester ved oppstart og hvordan du gjør serviceoperasjoner som start, stopp, omstart osv. Vi har utført øvelsene nedenfor på Fedora 30 -arbeidsstasjoner, som vil være mest anvendelig for andre Linux OSS.
Liste oppstartstjenester på oppstart i Fedora Linux
Den gamle SYSV -metoden bruker tjenesten og Chkconfig kommandoer for å administrere tjenestene. Disse kommandoene er nå erstattet med systemd -kommandoene som SystemCTL. La oss se noen av driften av "SystemCTL" på forskjellige tjenester i Linux.
1. For å liste opp alle tjenestene som kjører på systemet ditt, sammen med deres stater (aktivert eller deaktivert), bruk kommandoen nedenfor:
$ sudo SystemCTL List-Unit-Files-Type = Service
En tjeneste kan ha tre stater: 1) aktivert 2) Deaktivert 3) Statisk
En aktivert tjeneste har en symlink i en .ønsker katalog, mens en funksjonshemmet tjeneste ikke har en. En statisk tjeneste har ikke en installasjonsseksjon i det tilsvarende init -skriptet. Så det kan ikke aktiveres eller deaktiveres.
For å få flere detaljer om tjenestene, bør kommandoen nedenfor brukes.
$ sudo systemctl -at tjeneste
Sammendrag av ovennevnte kolonnenavn:
Enhet - SystemD enhetsnavn (her et tjenestenavn).
Last - spesifiser om SystemD -enheten ble lastet riktig eller ikke.
Aktiv - enheten til enheten (her tjeneste).
Sub - En understat for en enhetsaktivering.
Beskrivelse - En kort informasjon om enheten.
Vi kan også bruke følgende kommando:
$ SUDO LS/LIB/SYSTEMD/SYSTEM/*.service
eller
$ sudo/etc/systemd/system/*.service
De “/Etc/inittab” er nå erstattet av “/Etc/Systemd/System/” i Systemd. Denne katalogen inneholder nå symlinkene til filene i katalogen “/Usr/lib/systemd/system”. INIT -skriptene er plassert i “/usr/lib/systemd/system”. En tjeneste må kartlegges til “/Etc/Systemd/System/” For å starte den på System Boot. For dette formålet brukes SystemCTL -kommandoen i Fedora og andre siste Linux -systemer.
2. La oss se eksemplet nedenfor om å aktivere HTTPD -tjenesten:
$ sudo systemctl aktiver httpd.service
Vi kan også bruke kommandoen nedenfor for å filtrere alle de aktiverte tjenestene:
$ SUDO SystemCTL List-Unit-Files | grep aktivert
eller bruk kommandoen:
$ sudo SystemCTL | grep løping
3. For å liste opp alle aktive (løpende) tjenester, bruk kommandoen:
$ sudo systemctl -t service --state = aktiv
4. For å se hvilke tjenester som er aktivert for å starte automatisk på systemstart, kan vi også bruke følgende kommando:
$ sudo SystemCTL List-Unit-Files-Type = Service-State = Aktivert-All
5. Tilsvarende kan vi sjekke de funksjonshemmede for å starte ved oppstart med kommandoen:
$ sudo SystemCTL List-Unit-Files-Type = Service-State = Disabled-All
6. Vi kan også se hvilken tid hver tjeneste tar ved oppstart:
$ sudo systemd-analyserer skylden
7. For å sjekke om en tjeneste er aktivert for Autostart ved oppstart, bruk kommandoen:
$ sudo systemctl er aktivert xxx
Sett navnet på tjenesten i stedet for xxx. E.g., Når det gjelder HTTPD -tjeneste, vil kommandoen være:
$ sudo systemctl er aktivert httpd.service
eller
$ sudo systemctl er aktivert httpd
8. For å sjekke statusen til en tjeneste, bruk kommandoen:
$ sudo systemctl status xxx.service
For eksempel for å sjekke statusen til SSHD -tjenesten:
$ sudo systemctl status sshd.service
9. For å sjekke om en tjeneste kjører eller ikke, bare kjør kommandoen nedenfor:
$ sudo systemctl is-aktiv xxx.service
For eksempel for å sjekke Telnet -statusen:
$ sudo systemctl is-aktiv telnet.service
10. For å starte en død eller inaktiv tjeneste, bruk kommandoen:
$ sudo systemctl start xxx.service
For eksempel for å starte en SSHD -tjeneste:
$ sudo systemctl start sshd
11. For å deaktivere en tjeneste ved System Boot
$ sudo systemctl deaktiver xxx
For eksempel for å deaktivere HTTPD -tjenesten:
$ sudo systemctl deaktiver httpd.service
eller
$ sudo systemctl deaktiver httpd
12. For å starte en løpstjeneste på nytt
$ sudo SystemCTL RESTART XXX.service
For å starte SSHD -tjenesten på nytt, bruk kommandoen:
$ sudo SystemCTL Restart SSHD
Hvis tjenesten ikke allerede kjører, vil den bli startet.
1. 3. For å laste inn en løpstjeneste på nytt
$ sudo SystemCTL Reload xxx.service
For eksempel, last inn HTTPD -tjenesten med:
$ sudo systemctl last inn httpd.service
Denne kommandoen laster inn konfigurasjonen av en bestemt tjeneste på nytt. For å laste inn enhetskonfigurasjonsfilen til SystemD, trenger vi kommandoen:
$ sudo SystemCTL Daemon-Reload
14. For å liste opp alle avhengighetene til en tjeneste:
$ sudo SystemCTL List-Dependencies XXX.service
Når det gjelder HTTPD -tjeneste, vil kommandoen være:
$ sudo SystemCTL listeavhengigheter httpd.service
Konklusjon
I denne guiden har vi sett forskjellige måter å administrere tjenester med SystemD -verktøy som å aktivere tjenester ved oppstartstid, starte og stoppe dem osv. Hvis du var vant til tjenestekommandoen til Old Sysvinit, bør du bytte til SystemD da det har flere funksjoner og det er standard INIT -systemet i nyere versjoner av Fedora, RHEL og de fleste av de andre store Linux -distribusjonene.