Systemd prináša koncept systémových jednotiek v systéme Linux. Napr.g., servisná jednotka, cieľová jednotka, montážna jednotka atď. sú typy jednotiek s príponou súboru ako .služby, .cieľ, .namontovať resp. Konfiguračný súbor predstavujúci tieto jednotky je uložený vo vnútri adresárov: / usr / lib / systemd / system /, / run / systemd / system /, / etc / systemd / system /
Staršie verzie Red Hat Enterprise Linux (RHEL) používali inicializačné skripty. Tieto skripty boli napísané v jazyku BASH a boli umiestnené v adresári „/ etc / rc.d / init.d / ”. Toto sú skripty používané na riadenie služieb a démonov. Neskôr v RHEL 7 boli predstavené servisné jednotky, ktoré nahradili inicializačné skripty. Fedora, ktorá je nadradeným operačným systémom Red Hat Enterprise Linux, začala používať systémovú verziu Fedory verzie 15.
Servisné jednotky majú .prípony súborov služby a majú podobné roly ako inicializačné skripty. Program „Systemd“ používa na správu systémových služieb obslužný program „systemctl“. Môže byť použitý na zobrazenie, spustenie, zastavenie, reštart, povolenie alebo zakázanie týchto služieb.
Výhody systému Systemd Over Init
- Pomocou systemd môžeme uprednostniť potrebné služby pred menej významnými.
- Cgroups používa systemd na sledovanie procesov a kontrolu vykonania.prostredie.
- Systemd stále podporuje starý proces init a má väčšiu kontrolu.
- Systemd je schopný pracovať s dynamickými úpravami konfigurácie systému.
Čo pokryjeme?
V tejto príručke sa dozvieme o správe systémových procesov. Uvidíme, ako povoliť a zakázať spúšťacie služby pri štarte a ako vykonávať služby ako štart, stop, reštart atď. Nižšie uvedené cviky sme vykonali na pracovných staniciach Fedora 30, ktoré budú najviac použiteľné pre iné operačné systémy Linux.
Zoznam spúšťacích služieb pri štarte vo Fedore Linux
Stará metóda SysV využíva službu a chkconfig príkazy na správu služieb. Tieto príkazy sú teraz nahradené systémovými príkazmi ako systemctl. Pozrime sa na niektoré operácie „systemctl“ na rôznych službách v systéme Linux.
1. Ak chcete zobraziť zoznam všetkých služieb spustených vo vašom systéme, spolu s ich stavmi (povolenými alebo zakázanými), použite nasledujúci príkaz:
$ sudo systemctl list-unit-files --type = služba
Služba môže mať tri stavy: 1) povolená 2) deaktivovaná 3) statická
Povolená služba má symbolický odkaz v a .chce adresár, zatiaľ čo vypnutá služba ho nemá. Statická služba nemá inštalačnú časť v príslušnom inicializačnom skripte. Nemožno ho teda povoliť ani zakázať.
Ak chcete získať viac podrobností o službách, použite nasledujúci príkaz.
služba $ sudo systemctl -at
Súhrn názvov vyššie uvedených stĺpcov:
UNIT - názov systémovej jednotky (tu názov služby).
LOAD - Zadajte, či bola systémová jednotka načítaná správne alebo nie.
AKTÍVNY - stav jednotky (tu služba).
SUB - Sub-stav aktivácie jednotky.
POPIS - Krátka informácia o jednotke.
Môžeme tiež použiť nasledujúci príkaz:
$ sudo ls / lib / systemd / system / *.službyalebo
$ sudo / etc / systemd / system / *.služby
The „/ Etc / inittab“ sa teraz nahrádza „/ Etc / systemd / system /“ v systemd. Tento adresár teraz obsahuje symbolické odkazy na súbory v adresári „/ Usr / lib / systemd / system“. Init skripty sú umiestnené v priečinku „/ usr / lib / systemd / system“. Služba musí byť namapovaná na „/ Etc / systemd / system /“ pre jeho spustenie pri štarte systému. Z tohto dôvodu sa príkaz systemctl používa vo Fedore a iných najnovších systémoch Linux.
2. Pozrime sa na nasledujúci príklad povolenia služby httpd:
$ sudo systemctl povoliť httpd.služby
Ďalej môžeme použiť nasledujúci príkaz na filtrovanie všetkých povolených služieb:
$ sudo systemctl list-unit-files | grep povolený
alebo použite príkaz:
$ sudo systemctl | grep beh
3. Ak chcete zobraziť zoznam všetkých aktívnych (spustených) služieb, použite príkaz:
4. Ak chcete zistiť, ktoré služby sa môžu spúšťať automaticky pri štarte systému, môžeme tiež použiť nasledujúci príkaz:
$ sudo systemctl list-unit-files --type = service --state = enabled --all
5. Podobne môžeme skontrolovať zakázané služby, aby sa spustili pri štarte, pomocou príkazu:
$ sudo systemctl list-unit-files --type = service --state = vypnuté - všetko
6. Vidíme tiež, koľko času každá služba zaberie pri štarte:
$ sudo systemd-analyzovať vinu
7. Ak chcete skontrolovať, či je služba povolená pre automatické spustenie pri štarte, použite príkaz:
$ sudo systemctl je povolené xxxNamiesto xxx zadajte názov služby. E.g., v prípade služby httpd bude príkaz:
$ sudo systemctl je povolené httpd.službyalebo
$ sudo systemctl je povolené httpd
8. Ak chcete skontrolovať stav služby, použite príkaz:
$ sudo systemctl status xxx.službyNapríklad na kontrolu stavu služby sshd:
$ sudo systemctl status sshd.služby
9. Ak chcete skontrolovať, či je služba spustená alebo nie, stačí spustiť nasledujúci príkaz:
$ sudo systemctl je aktívny xxx.službyNapríklad na kontrolu stavu telnetu:
$ sudo systemctl je aktívny telnet.služby
10. Ak chcete spustiť mŕtvu alebo neaktívnu službu, použite príkaz:
$ sudo systemctl start xxx.službyNapríklad na spustenie služby sshd:
$ sudo systemctl start sshd
11. Zakázanie služby pri štarte systému
Napríklad vypnutie služby httpd:
$ sudo systemctl vypnúť httpd.službyalebo
$ sudo systemctl vypnúť httpd
12. Reštartovanie spustenej služby
$ sudo systemctl reštart xxx.službyNa reštartovanie služby sshd použite príkaz:
$ sudo systemctl reštart sshdAk služba ešte nie je spustená, spustí sa.
13. Ak chcete znova načítať spustenú službu
$ sudo systemctl znovu načítať xxx.službyNapríklad znova načítajte službu httpd pomocou:
$ sudo systemctl znovu načítať httpd.služby
Tento príkaz znovu načíta konfiguráciu konkrétnej služby. Na opätovné načítanie konfiguračného súboru jednotky systému systemd potrebujeme príkaz:
$ sudo systemctl daemon-reload14. Zoznam všetkých závislostí služby:
$ sudo systemctl zoznam závislostí xxx.službyV prípade služby httpd bude príkaz:
$ sudo systemctl zoznam závislostí httpd.služby
Záver
V tejto príručke sme videli rôzne spôsoby správy služieb pomocou obslužného programu systemd, ako napríklad povolenie služieb pri štarte, ich spustenie a zastavenie atď. Ak ste boli zvyknutí na obslužný príkaz starého Sysvinitu, mali by ste prejsť na systemd, pretože má viac funkcií a je to predvolený inicializačný systém v novších verziách Fedory, RHEL a väčšiny ďalších hlavných distribúcií Linuxu.