V tem priročniku bom razpravljal o ukazih storitev in systemctl ter o tem, kako se razlikujejo, ko gre za upravljanje storitev.
Preden gremo naprej, najprej razumejmo dva priljubljena sistema inicializacije Linuxa; System in Systemd.
System V proti Systemd
Zagonski sistem v Linuxu je ključni del zagonskega procesa. To je prvi proces s PID 1, ki se sproži ob zagonu sistema. Nato zažene procese v datoteki inittab. System V pozna tudi SysV in systemd sta priljubljena zagonska sistema Linuxa.
The SysV je starejši init sistem in je bil del starejših distribucij Unixa in Linuxa. Upravlja sistemske storitve s pomočjo skriptov v /etc/init.d. Nekatere distribucije Linuxa, ki še vedno uporabljajo SysV, so Slackware, Gentoo in antiX Linux.
Po drugi strani, systemd predstavljen leta 2010 in so ga hitro sprejele številne distribucije Linuxa. Systemd init sistem upravlja storitve prek datotek .service. Zdaj je del vseh sodobnih distribucij Linuxa, vključno z Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu in distribucijami, ki temeljijo na teh operacijskih sistemih.
Systemd je veliko bolj učinkovit v primerjavi s SysV. Zagotavlja hitrejši čas zagona, učinkovito upravljanje storitev in ravnanje z odvisnostmi.
Oba init sistema nudita dva pripomočka ukazne vrstice za upravljanje storitev.
V naslednjih razdelkih vodnika bom razpravljal o teh dveh pripomočkih.
storitveno povelje
The storitev ukaz je ovoj skripta, ki izvaja skripte, ki se nahajajo v /etc/init.d imenik. Razvit je bil za upravljanje storitve SysV oz Sistem V init sistem. Distribucije Linuxa, ki uporabljajo SysV kot zagonski sistem, uporabljajo storitev ukaz za upravljanje storitev.
Splošna sintaksa za uporabo storitvenega ukaza je podana spodaj.
storitev [ ime_storitve ] [ ukrepanje ]Če želite pridobiti status storitev, ki jih nadzoruje System V, uporabite ukaz service z – stanje-vse možnost.
storitev --status-vse
The + označuje, da se storitev izvaja, in – kaže, da je storitev neaktivna.
Trenutni status posamezne storitve lahko preverite tudi z navedbo imena storitve.
storitev [ ime_storitve ] stanje
Nekateri drugi uporabni storitveni ukazi, kot so zagon, zaustavitev in ponovni zagon storitve, so navedeni spodaj.
storitev [ ime_storitve ] začetekstoritev [ ime_storitve ] stop
storitev [ ime_storitve ] ponovni zagon
Ta storitveni ukaz zagotavlja osnovni nadzor za upravljanje storitev. Večina distribucij Linuxa je zamenjala SysV kot sistem inicializacije, vendar je zaradi združljivosti s podedovanimi različicami ta ukaz še vedno na voljo v številnih najnovejših distribucijah Linuxa.
ukaz systemctl
Z ukazom systemctl lahko nadzorujete storitve v /lib/systemd/system in /etc/systemd/system imeniki. Je komponenta systemd; init sistem, ki ga najdemo v večini sodobnih distribucij Linuxa.
Systemctl je zasnovan tako, da zagotavlja večji nadzor nad upravljanjem sistemskih storitev. Splošna sintaksa za uporabo ukaza systemctl je podana spodaj:
systemctl [ možnost ] [ ime_storitve ]Če želite preveriti stanje vseh storitev, uporabite naslednji ukaz.
sistemske enote seznama -- vrsta = storitev --vseZa uporabo določene storitve:
status systemctl [ ime_storitve ]
Ukazi za osnovno upravljanje storitve z uporabo systemctl so podani spodaj:
systemctl omogočiti [ ime_storitve ]zagon systemctl [ ime_storitve ]
sistemska zaustavitev [ ime_storitve ]
onemogoči systemctl [ ime_storitve ]
ponovni zagon systemctl [ ime_storitve ]
Ukaz systemctl presega, ko gre za nadzor storitev. Spodnja tabela vsebuje nekaj naprednih ukazov systemctl.
seznam poti | Za seznam poti vseh storitev v pomnilniku |
je aktiven [ime_storitve] | Za preverjanje, ali storitev ali enota deluje ali ne |
seznam odvisnosti [ime_storitve] | Za tiskanje seznama odvisnosti podane storitve |
ponastavitev ni uspela | Za ponastavitev storitev, ki se niso uspele naložiti zaradi neke nepravilnosti |
maska [ime_storitve] | Če želite onemogočiti storitev in onemogočiti njen zagon |
get-default | Za tiskanje privzete ravni ali cilja |
set-default [cilj] | Za nastavitev privzete ravni teka ali cilja |
je-sistem-teče | Za preverjanje stanja delovanja sistema |
ponovni zagon | Za ponovni zagon sistema |
ugasniti | Za zaustavitev sistema |
Zakaj v distribucijah Linuxa še vedno obstaja storitveni ukaz s sistemom systemd init
Storitveni ukaz je še vedno del številnih distribucij Linuxa, ker je ovojni skript in abstrahira osnovni init sistem, ne glede na to, ali je SysV ali systemctl. Na primer, v Ubuntuju ukaz service preusmeri na systemctl.
Zaključek
Service in systemctl sta dva pripomočka ukazne vrstice, ki pripadata sistemoma SysV oziroma systemd init. Kljub zamenjavi ukaza service v sodobnih distribucijah Linuxa ostaja ključno orodje za vzdrževanje storitev zaradi enostavnosti in združljivosti. Systemctl pa je del vseh trenutnih distribucij Linuxa in ponuja napredne možnosti za skrbništvo storitev.