Ebben az útmutatóban a service és systemctl parancsokról fogok beszélni, valamint arról, hogy miben különböznek a szolgáltatáskezelésről.
Mielőtt továbbmennénk, ismerjünk meg két népszerű Linux init rendszert; System és Systemd.
System V vs Systemd
A Linux init rendszere a rendszerindítási folyamat döntő része. Ez az első PID 1-es folyamat, amely a rendszer indításakor indul el. Ezután elindítja az inittab fájlban található folyamatokat. A System V is ismer egy SysV-t, a systemd pedig népszerű Linux init rendszerek.
A SysV egy régebbi indítórendszer, és régebbi Unix és Linux disztribúciók része volt. A rendszerszolgáltatásokat az /etc/init.d fájlban található szkriptek segítségével kezeli. Néhány Linux disztribúció, amely még mindig SysV-t használ, a Slackware, a Gentoo és az antiX Linux.
Másrészről, systemd 2010-ben indult, és gyorsan átvette számos Linux disztribúció. A systemd init rendszer .service fájlokon keresztül kezeli a szolgáltatásokat. Ma már az összes modern Linux disztribúció része, beleértve a Red Hat Enterprise Linuxot, a CentOS-t, az Amazon Linuxot, a Fedorát, a Debiant, az Ubuntu-t és az ezen operációs rendszereken alapuló disztribúciókat.
A systemd sokkal hatékonyabb a SysV-hez képest. Gyorsabb rendszerindítási időt, hatékony szolgáltatáskezelést és függőségek kezelését biztosítja.
Mindkét init rendszer két parancssori segédprogramot biztosít a szolgáltatáskezeléshez.
Az útmutató következő részeiben ezt a két segédprogramot tárgyalom.
szervizparancs
A szolgáltatás parancs egy szkriptburkoló, amely a következőben található szkripteket futtatja /etc/init.d Könyvtár. Szolgáltatásának kezelésére fejlesztették ki SysV vagy V. rendszer init rendszer. A SysV-t indítórendszerként használó Linux disztribúciók a szolgáltatás parancs a szolgáltatáskezeléshez.
A service parancs használatának általános szintaxisa alább látható.
szolgáltatás [ szolgáltatás neve ] [ akció ]A System V által vezérelt szolgáltatások állapotának megtekintéséhez használja a service parancsot a –állapot-minden választási lehetőség.
szolgáltatás --status-all
A + azt jelzi, hogy a szolgáltatás fut, és a – azt mutatja, hogy a szolgáltatás inaktív.
Egy adott szolgáltatás aktuális állapota a szolgáltatás nevének megadásával is ellenőrizhető.
szolgáltatás [ szolgáltatás neve ] állapot
Az alábbiakban felsorolunk néhány további hasznos szolgáltatásparancsot, mint például a szolgáltatás indítása, leállítása és újraindítása.
szolgáltatás [ szolgáltatás neve ] Rajtszolgáltatás [ szolgáltatás neve ] állj meg
szolgáltatás [ szolgáltatás neve ] újrakezd
Ez a szolgáltatásparancs alapvető vezérlést biztosít a szolgáltatások kezeléséhez. A legtöbb Linux-disztribúció a SysV-t initrendszerként váltotta fel, de az örökölt kompatibilitás miatt ez a parancs továbbra is számos legújabb Linux-disztribúcióban megtalálható.
systemctl parancs
A systemctl paranccsal vezérelheti a szolgáltatásokat a /lib/systemd/system és /etc/systemd/system könyvtárakat. A systemd összetevője; a legtöbb kortárs Linux disztribúcióban megtalálható init rendszer.
A systemctl-t úgy tervezték, hogy nagyobb ellenőrzést biztosítson a rendszerszolgáltatás-kezelés felett. A systemctl parancs használatának általános szintaxisa az alábbiakban található:
systemctl [ választási lehetőség ] [ szolgáltatás neve ]Az összes szolgáltatás állapotának ellenőrzéséhez használja a következő parancsot.
systemctl lista-egységek --típus =szolgáltatás --mindenEgy adott szolgáltatás igénybevételéhez:
systemctl állapot [ szolgáltatás neve ]
A rendszerctl használatával a szolgáltatás alapvető kezeléséhez szükséges parancsok az alábbiak:
systemctl engedélyezze [ szolgáltatás neve ]systemctl start [ szolgáltatás neve ]
systemctl stop [ szolgáltatás neve ]
systemctl letiltása [ szolgáltatás neve ]
systemctl újraindítás [ szolgáltatás neve ]
A systemctl parancs túlmutat a szolgáltatások vezérlésén. Az alábbi táblázat néhány speciális systemctl parancsot tartalmaz.
lista-útvonalak | A memóriában lévő összes szolgáltatás elérési útjának felsorolása |
aktív [szolgáltatás_neve] | Annak ellenőrzésére, hogy a szolgáltatás vagy az egység fut-e vagy sem |
list-dependencies [szolgáltatás_neve] | A megadott szolgáltatás függőségi listájának kinyomtatása |
reset-sikertelen | Azon szolgáltatások alaphelyzetbe állítása, amelyek betöltése valamilyen rendellenesség miatt nem sikerült |
maszk [szolgáltatás_neve] | A szolgáltatás letiltása és az indítás lehetetlenné tétele |
get-default | Az alapértelmezett futási szint vagy cél kinyomtatása |
set-default [cél] | Az alapértelmezett futási szint vagy cél beállításához |
is-rendszer fut | A rendszer működési állapotának ellenőrzésére |
újraindítás | A rendszer újraindításához |
kikapcsolni | A rendszer leállításához |
Miért van még mindig szolgáltatásparancs a systemd init rendszerű Linux disztribúciókban?
A service parancs még mindig sok Linux-disztribúció része, mert egy burkoló szkript, és absztrahálja a mögöttes indítórendszert, legyen az SysV vagy systemctl. Például Ubuntu esetén a service parancs átirányít a systemctl fájlra.
Következtetés
A service és a systemctl két parancssori segédprogram, amelyek a SysV és a systemd init rendszerekhez tartoznak. Annak ellenére, hogy a modern Linux disztribúciókban lecserélték a service parancsot, az egyszerűség és a kompatibilitás miatt továbbra is kulcsfontosságú eszköz a szolgáltatások karbantartásához. A systemctl viszont az összes jelenlegi Linux-disztribúció része, és fejlett lehetőségeket biztosít a szolgáltatásadminisztrációhoz.