Ebben az útmutatóban bemutatom, hogyan hozhat létre felhasználó-specifikus szolgáltatást Linuxon, és hogyan kezelheti azt a systemctl használatával.
A normál felhasználói szolgáltatás oka
A normál felhasználói szolgáltatás eltér a rendszerszolgáltatástól. A normál felhasználói szolgáltatás bejelentkezett felhasználó-központú. Ez a szolgáltatás csak annak a felhasználónak a munkamenetében fog működni, aki létrehozta.
Normál felhasználói szolgáltatás létrehozása
A felhasználó-specifikus szolgáltatások Linuxon a ~/.config/systemd/user Könyvtár. Ha ez a könyvtár nincs jelen, akkor létrehozható.
mkdir -o ~ / .config / systemd / felhasználóA -o A jelzőt a szülőkönyvtár létrehozására használják, ha szükséges. A ~ a helyi felhasználó saját könyvtárát jelzi, és egyenértékű a /home/user míg a konfigurációs fájl előtti pont rejtettvé teszi. Hozzunk létre egy egyszerű bash script fájlt, amely 30 percenként szövegbe írja a memóriahasználatot. nevével készítem el a szkriptet script.sh .
#! /bin/bashmíg igaz
csináld
ingyenes -m >> / itthon / felhasználó / myfile.txt
alvás 1800
Kész
Ez a szkript bárhol létrehozható, de ügyeljen arra, hogy a szkriptben megadott elérési út abszolút elérési út legyen.
Most hozzunk létre egy szolgáltatást, amely végrehajtja a fenti szkriptet a háttérben. Indítson el bármilyen szövegszerkesztőt, például a Nano-t vagy a Vim-et, és illessze be az alábbi sorokat.
[ Mértékegység ]Leírás =Szolgálatom
[ Szolgáltatás ]
típus = egyszerű
ExecStart = / kuka / bash / itthon / felhasználó / script.sh
Újrakezd =hiba esetén
[ Telepítés ]
WantedBy =default.target
Az [Egység] részben a Leírás direktíva egyszerűen a szolgáltatás nevét tartalmazza. Vegye figyelembe, hogy nem lehet több 80 karakternél.
A [Szolgáltatás] szakasz a három fontos irányelvet tartalmazza. Először is a típus ; ami egyszerű , akkor ExecStart amely tartalmazza az egyéni szkriptünk végrehajtható fájlját. A szolgáltatás csak hiba esetén indul újra.
Az [Install] szakasz tartalmazza a WantedBy direktíva, amely az default.target , ami azt jelenti, hogy a szolgáltatás a rendszerállapotban lesz engedélyezve, amikor eléri az alapértelmezett futási szintet, amely általában többfelhasználós.target vagy grafikus.cél.
Most mentse a fájlt a ~/.config/systemd/user könyvtár bármilyen névvel; én nevezem el myservice.service .
Normál felhasználói szolgáltatás kezelése
A normál felhasználói szolgáltatás kezeléséhez a systemctl parancsot a – felhasználó zászló. A – felhasználó A zászló azt jelenti, hogy a felhasználó a szolgáltatásmenedzserrel veszi fel a kapcsolatot, nem pedig a rendszerrel.
A felhasználó-specifikus szolgáltatásfájl létrehozása után az első döntő lépés a systemd konfigurációs fájlok újratöltése.
systemctl --felhasználó démon-újratöltésEz alkalmazza a módosításokat.
Ha meg szeretné tudni, hogy a szolgáltatás fut-e vagy sem, használja a systemctl parancsot a – felhasználó zászló és opció.
systemctl --felhasználó állapot [ szolgáltatás neve ]
Az alábbiakban megemlítjük a normál felhasználói szolgáltatás kezeléséhez szükséges egyéb parancsokat:
systemctl --felhasználó Rajt [ szolgáltatás neve ]systemctl --felhasználó engedélyezze [ szolgáltatás neve ]
systemctl --felhasználó állj meg [ szolgáltatás neve ]
systemctl --felhasználó letiltása [ szolgáltatás neve ]
systemctl --felhasználó újrakezd [ szolgáltatás neve ]
Normál felhasználói szolgáltatás létrehozása rendszergazdai jogosultságokkal
A felhasználók számos szolgáltatást hozhatnak létre, de ezek futtatásához rendszergazdai engedély szükséges. Ilyen szolgáltatások a hozzáadásával hozhatók létre Felhasználó utasítást a [Szolgáltatás] részhez.
A Felhasználó direktívával megemlíthetjük annak a felhasználónak a nevét, akinek a jogosultságai szükségesek a szolgáltatás futtatásához, mint pl admin . Tehát, ha egy normál felhasználó olyan szolgáltatást szeretne létrehozni, amely rendszergazdai engedélyeket igényel, akkor egyszerűen adja hozzá a User=admin a [Szolgáltatás] részben elvégzi a munkát. Ez a szolgáltatás azonban mindaddig aktív marad, amíg az adminisztrátor aktív. Vegye figyelembe, hogy ezt a szolgáltatást az adminisztrátor közvetlenül nem vezérelheti.
Következtetés
A normál felhasználó is létrehozhat rendszerszolgáltatást, de azt el kell helyezni ~/.config/systemd/user Könyvtár. Ez a szolgáltatás addig fut, amíg az azt létrehozó felhasználó be van jelentkezve. Ezeket a szolgáltatásokat is a systemctl paranccsal lehet felügyelni, de – felhasználó zászló. Ez azt mondja a systemd-nek, hogy a szolgáltatást a felhasználó hívja, nem a rendszer. Ebben az útmutatóban létrehoztam egy egyéni normál felhasználói szolgáltatást, és említettem a systemctl parancsokat a kezeléséhez. Ezenkívül kiemeltem egy olyan szolgáltatás létrehozásának módszerét is, amely rendszergazdai jogosultságokat igényel.