Systemd prinaša koncept sistemskih enot v Linuxu. Za e.g., servisna enota, ciljna enota, montažna enota itd. so vrste enot s pripono datoteke kot .storitev, .cilj, .pritrdite. Konfiguracijska datoteka, ki predstavlja te enote, je shranjena v imenikih: / usr / lib / systemd / system /, / run / systemd / system /, / etc / systemd / system /
Prejšnje različice Red Hat Enterprise Linux (RHEL) so uporabljale skripte init. Ti skripti so bili napisani v jeziku BASH in so bili v imeniku “/ etc / rc.d / init.d / ”. To so skripte, ki se uporabljajo za nadzor storitev in demonov. Kasneje v RHEL 7 so bile predstavljene servisne enote, ki nadomeščajo skripte init. Fedora, ki je nadrejeni OS Red Hat Enterprise Linux, je začela uporabljati systemd iz različice Fedora 15.
Servisne enote imajo .razširitve datotek storitve in imajo podobne vloge kot skripti init. “Systemd” uporablja pripomoček “systemctl” za upravljanje sistemskih storitev. Uporablja se lahko za ogled, zagon, zaustavitev, ponovni zagon, omogočanje ali onemogočanje teh storitev.
Prednosti Systemd pred Init sistemom
- S sistemom lahko dajemo prednost potrebnim storitvam kot manj pomembnim storitvam.
- Cgroups uporablja systemd za sledenje procesom in nadzor nad izvajanjem.okolje.
- Systemd še vedno podpira stari postopek init in ima več nadzora.
- Systemd se lahko ukvarja z dinamičnimi spremembami konfiguracije sistema.
Kaj bomo pokrivali?
V tem priročniku bomo spoznali upravljanje sistemskih procesov. Videli bomo, kako omogočiti in onemogočiti zagonske storitve ob zagonu in kako izvajati storitvene operacije, kot so zagon, zaustavitev, ponovni zagon itd. Na delovnih postajah Fedora 30 smo izvedli spodnje vaje, ki bodo najbolj uporabne za druge operacijske sisteme Linux.
Pri zagonskem sistemu Fedora Linux navedite zagonske storitve
Stara metoda SysV uporablja storitev in chkconfig ukazi za upravljanje storitev. Ti ukazi so zdaj nadomeščeni z ukazi systemd, kot je systemctl. Oglejmo si nekaj operacij sistema "systemctl" na različnih storitvah v Linuxu.
1. Če želite navesti vse storitve, ki se izvajajo v vašem sistemu, skupaj z njihovimi stanji (omogočene ali onemogočene), uporabite spodnji ukaz:
$ sudo systemctl list-unit-files --type = storitev
Storitev ima lahko tri stanja: 1) omogočeno 2) onemogočeno 3) statično
Omogočena storitev ima v povezavi .želi imenik, medtem ko ga invalidska storitev nima. Statična storitev v ustreznem skriptu init nima razdelka za namestitev. Torej je ni mogoče omogočiti ali onemogočiti.
Če želite več podrobnosti o storitvah, uporabite spodnji ukaz.
$ sudo systemctl -at storitev
Povzetek zgornjih imen stolpcev:
UNIT - ime sistemske enote (tukaj ime storitve).
LOAD - Določite, ali je bila sistemska enota pravilno naložena ali ne.
AKTIVNO - Stanje enote (tukaj storitev).
SUB - pod-stanje aktivacije enote.
OPIS - Kratek podatek o enoti.
Uporabimo lahko tudi naslednji ukaz:
$ sudo ls / lib / systemd / system / *.storitevali
$ sudo / etc / systemd / system / *.storitev
The “/ Etc / inittab” je zdaj nadomeščen z “/ Etc / systemd / system /” v sistemd. Ta imenik zdaj vsebuje simbolne povezave do datotek v imeniku “/ Usr / lib / systemd / system". Začetni skripti so nameščeni v “/ usr / lib / systemd / system”. Storitev mora biti preslikana “/ Etc / systemd / system /” za zagon pri zagonu sistema. V ta namen se ukaz systemctl uporablja v Fedori in drugih najnovejših sistemih Linux.
2. Oglejmo si spodnji primer omogočanja storitve httpd:
$ sudo systemctl omogoči httpd.storitev
Prav tako lahko uporabimo spodnji ukaz za filtriranje vseh omogočenih storitev:
$ sudo systemctl list-unit-files | grep omogočen
ali uporabite ukaz:
$ sudo systemctl | grep teče
3. Če želite seznam vseh aktivnih (delujočih) storitev, uporabite ukaz:
4. Če si želimo ogledati, katere storitve so omogočene za samodejni zagon ob zagonu sistema, lahko uporabimo tudi naslednji ukaz:
$ sudo systemctl list-unit-files --type = service --state = enabled --all
5. Podobno lahko z ukazom preverimo, ali se onemogočene storitve zaženejo ob zagonu:
$ sudo systemctl list-unit-files --type = service --state = disabled --all
6. Prav tako lahko vidimo, koliko časa traja posamezna storitev ob zagonu:
$ sudo systemd-analizira krivdo
7. Če želite preveriti, ali je storitev ob zagonu omogočena za samodejni zagon, uporabite ukaz:
$ sudo systemctl je omogočen xxxNamesto xxx postavite ime storitve. E.g., v primeru storitve httpd bo ukaz:
$ sudo systemctl je omogočen httpd.storitevali
$ sudo systemctl je omogočen httpd
8. Če želite preveriti stanje storitve, uporabite ukaz:
$ sudo systemctl status xxx.storitevČe želite na primer preveriti stanje storitve sshd:
$ sudo systemctl status sshd.storitev
9. Če želite preveriti, ali se storitev izvaja ali ne, preprosto zaženite spodnji ukaz:
$ sudo systemctl is-active xxx.storitevNa primer, da preverite stanje telneta:
$ sudo systemctl je aktivni telnet.storitev
10. Če želite zagnati mrtvo ali neaktivno storitev, uporabite ukaz:
$ sudo systemctl start xxx.storitevČe želite na primer zagnati storitev sshd:
$ sudo systemctl start sshd
11. Če želite onemogočiti storitev ob zagonu sistema
Če želite na primer onemogočiti storitev httpd:
$ sudo systemctl onemogoči httpd.storitevali
$ sudo systemctl onemogoči httpd
12. Za ponovni zagon delujoče storitve
$ sudo systemctl znova zaženite xxx.storitevČe želite znova zagnati storitev sshd, uporabite ukaz:
$ sudo systemctl znova zaženite sshdČe storitev še ne deluje, se bo zagnala.
13. Če želite znova naložiti delujočo storitev
$ sudo systemctl znova naloži xxx.storitevNa primer, znova naložite storitev httpd z:
$ sudo systemctl znova naloži httpd.storitev
Ta ukaz znova naloži konfiguracijo določene storitve. Če želite znova naložiti konfiguracijsko datoteko enote systemd, potrebujemo ukaz:
$ sudo systemctl daemon-reload14. Če želite našteti vse odvisnosti storitve:
$ sudo systemctl seznam-odvisnosti xxx.storitevV primeru storitve httpd bo ukaz:
$ sudo systemctl seznam-odvisnosti httpd.storitev
Zaključek
V tem priročniku smo videli različne načine upravljanja storitev s pripomočkom systemd, na primer omogočanje storitev ob zagonu, zagon in zaustavitev itd. Če ste bili vajeni servisnega ukaza starega Sysvinita, preklopite na systemd, saj ima več funkcij in je privzeti sistem init v novejših različicah Fedore, RHEL in večini drugih večjih distribucij Linuxa.