A Linux szolgáltatásai azonnal elindulnak, amint a rendszer elindul vagy újraindul. Így hozhat létre automatikusan induló rendszerszolgáltatást Linux rendszerű számítógépén.
A systemd számos jól ismert Linux disztribúció szolgáltatásmenedzsere. A szolgáltatás egy program egysége, amely általában a háttérben fut. A szolgáltatások természetüknél fogva automatikusan elindulnak, amint a rendszer elindul, és felügyelet nélkül futhatnak.
Ha olyan automatikusan induló feladatot vagy programot kell létrehoznia, amely a rendszer minden indításakor vagy újraindításakor lefut, fontolja meg egy új szolgáltatás létrehozását. Tanuljuk meg, hogyan hozhatunk létre új, egyedi rendszerszolgáltatást Linuxon.
1. lépés: A szolgáltatásfájl létrehozása
Új systemd szolgáltatásfájl létrehozásához néhány lépés szükséges. Ezek közül az első a szolgáltatás egységfájljának létrehozása. Mielőtt létrehozna egy szolgáltatásfájlt, meg kell értenie a szerkezetét.
Tanulmányozzuk a szolgáltatásfájlt úgy, hogy valódi, működő szolgáltatásfájlt húzunk ki a Linux rendszeréből. Alább láthatja a vmtools démon szolgáltatás szolgáltatásfájlját.
Előfordulhat, hogy ez a szolgáltatás nem található meg a rendszerén, hacsak nem is Linuxot futtat VMware-en, és telepített VMware-eszközöket. A szóban forgó szolgáltatás nem fontos, mert az összes szolgáltatás, vagy inkább a szolgáltatási egység fájljai ugyanazzal az alapstruktúrával rendelkeznek, szükség szerint néhány testreszabással.
Minden rendszerszolgáltatási fájlnak három részből kell állnia: [Szolgáltatás], [Mértékegység], és [Telepítés], és az egyes szakaszok alatt néhány paramétert. Íme, mit tartalmaznak az egyes szakaszok, és miért fontosak:
1. Mértékegység
A Mértékegység szakasz fontos metaadatokat, például a szolgáltatás leírását és függőségeit tartalmazza. Három paramétere van: Leírás, Előtt, és Után. Ahogy ugyanez sugallja, a Leírás paraméter megadja a szolgáltatás kontextusát és annak működését.
A Előtt és Után paraméterek határozzák meg a szolgáltatás végrehajtásához szükséges feltételeket. Ha például elindít egy webszerver-szolgáltatást, akkor azt szeretné, ha csak azután indulna el, hogy a hálózati szolgáltatás online állapotban van. Tehát beállítod az értékét Után paramétert a hálózati szolgáltatáshoz.
2. Szolgáltatás
A Szolgáltatás szakasz két kötelező paramétert tartalmaz: ExecStart, típus, és néhány egyéb opcionális paraméter, mint pl ExecReload, és több.
ExecStart meghatározza a szolgáltatás indításakor végrehajtandó parancsot, míg a típus paraméter határozza meg a létrehozandó folyamat típusát.
3. Telepítés
Ez a szakasz és a hozzá tartozó adatok mindig meghívásra kerülnek, amikor engedélyezi vagy letiltja a szolgáltatást a systemctl parancsot.
Van egy-két paramétere. Az egyik gyakori és szükséges az WantedBy. A WantedBy paraméter határozza meg a cél egységeket, amelyeknek el kell indulniuk, amikor a szolgáltatás engedélyezve van. Az alapértelmezett érték a többfelhasználós.cél.
Az itt említett paraméterek nem az egyetlen paraméterek, amelyeket beállíthat egy egységfájlban. A paraméterek teljes listáját a hivatalos systemd.exec dokumentáció vagy beírva man systemd.exec egy terminálban.
A systemd service unit fájl mindig "" karakterrel végződik.szolgáltatás" kiterjesztést, és tárolni kell a /etc/systemd/system/ Könyvtár. Hozd létre a szolgáltatásfájlt érintés parancs segítségével emelt jogosultságokkal úgy, hogy az előtagot a sudo parancs:
sudo touch /etc/systemd/system/.szolgáltatás
Most, hogy létrehozta a szolgáltatásfájlt, töltsük fel a szükséges szintaxissal, hogy a szolgáltatás érvényes legyen és működjön.
2. lépés: A szolgáltatásfájl konfigurálása
A demonstrációhoz létre fog hozni egy mintaszolgáltatást, amely végrehajtja Nmap a gép portjainak vizsgálatához és harminc másodpercenként tárolja a kimenetet egy fájlban. A feladat végrehajtásához a következőképpen strukturálhatja a szolgáltatási egység fájlt:
[Mértékegység]
Description=Egyéni nmap szolgáltatás bemutatása.
After=network.target[Szolgáltatás]
Típus=egyszerű
User=root
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt localhost
Újraindítás=mindig
RestartSec=30
[Telepítés]
WantedBy=multi-user.target
Bár az itt említett paramétereket már korábban kifejtettük, nézzük meg, hogyan befolyásolják az újonnan létrehozott szolgáltatásunkat, és fedezzük fel az ebben az egységben bevezetett újakat is: Újrakezd, RestartSec, és Felhasználó.
Íme, mit jelentenek az egyes szakaszok paraméterei:
- Leírás: Ember által olvasható szöveg a szolgáltatás funkcióinak leírására.
- After=network.target: Diktálja a rendszernek, amelytől ez a szolgáltatás függ network.target és csak azután szabad elkezdeni network.target szolgáltatás elindult. Vegye figyelembe, hogy Után nem használják közvetlen függőségi kapcsolat létrehozására, egyszerűen triggerként működik.
- Típus = egyszerű: Többféle szolgáltatás létezik. Ennek a bemutatónak a szolgáltatása azonban egy szabályos folyamat, ezért ezt kijelentjük. Az ehhez tartozó összes különböző értéket megtalálja a korábban hivatkozott hivatalos dokumentációs oldalon.
- Újraindítás=mindig: Ez azt jelenti, hogy amikor a szolgáltatás kilép, mindig újra kell indulnia.
- RestartSec=30: Ez 30 másodpercre állítja be a szolgáltatás minden egyes indítása közötti intervallumot.
- User=root: Ez meghatározza, hogy a szolgáltatás root felhasználóként fog futni. Ebben az esetben ez egy kötelező lépés, mivel az Nmap nem tud futni root jogosultságok nélkül.
- ExecStart: Ez az utasítás tartalmazza a végrehajtandó program abszolút elérési útját, valamint a program megfelelő működéséhez szükséges összes szükséges jelzőt vagy argumentumot.
- WantedBy=multi-user.target: Ez a paraméter a szolgáltatásfájlban határozza meg, hogy melyik célnak kell tartalmaznia vagy „akarnia” a szolgáltatást. Ha egy szolgáltatás szerepel egy célban, az azt jelenti, hogy a szolgáltatásnak akkor kell elindulnia, amikor a rendszer eléri ezt a célt a rendszerindítási folyamat során. Ebben az esetben a szolgáltatásnak akkor kell elindulnia, amikor a rendszer többfelhasználós módba lép. A többfelhasználós mód egy olyan állapot, amikor a rendszer teljesen be van indítva, és lehetővé teszi több felhasználó számára, hogy bejelentkezzen és használja a rendszert.
3. lépés: A szolgáltatás engedélyezése és indítása
Most, hogy létrehozta az egységfájlt, a szolgáltatás aktiválásához már csak az engedélyezés és a futtatás maradt hátra. A rendszerctl paranccsal engedélyezheti és elindíthatja a szolgáltatást.
A következőképpen használhatja a systemctl-t a szolgáltatás engedélyezésére, elindítására és állapotának ellenőrzésére:
sudo systemctl enable .szolgáltatás
sudo systemctl start .szolgáltatás
sudo systemctl állapot .szolgáltatás
Az egyéni szolgáltatásnak most már működnie kell! Ebben az esetben látnia kell egy Nmap vizsgálatot, amely harminc másodpercenként fut, és a kimenet a eredmények.txt fájlt a kezdőkönyvtárban.
A rendszerszolgáltatás beállítása Linuxon egyszerű!
Bár elsőre ijesztőnek tűnhet egy egyedi szolgáltatás nulláról történő beállítása, meglehetősen egyszerű módja annak önműködő, felügyelet nélküli folyamatot hoz létre az ismétlődő feladatok elvégzésére, és javítja a tevékenységét termelékenység.
A demószolgáltatásban alig kapkodtuk meg a szolgáltatás konfigurálásának és beállításának módját. Ha többet szeretne megtudni arról, hogyan szabhatja személyre szolgáltatását, javasoljuk, hogy tekintse át a megjegyzésben hivatkozott hivatalos dokumentációt.
Ha egy szolgáltatás beállítását és karbantartását túl nagy feladatnak érzi, fontolja meg az ismétlődő feladatok automatizálásának alternatív módját Linuxon.