Szolgáltatások kezelése a systemctl segítségével a VPS-én
Az Ön VPS-én olyan programok futnak, amelyeknek mindig elérhetőnek kell lenniük: az SSH-szerver, egy webszerver, egy adatbázis. Az ilyen programokat szolgáltatásoknak nevezzük. Debian, Ubuntu, AlmaLinux és Rocky Linux rendszeren a systemd indítja el és felügyeli őket, a systemd-t pedig a systemctl paranccsal kezelheti. Az alábbiakban a leggyakrabban szükséges parancsokat mutatjuk be.
Egy szolgáltatás állapota
systemctl status nginx
A .service kiterjesztés elhagyható. A kimenetet fentről lefelé olvassa:
- A név előtti pötty zöld, ha a szolgáltatás fut, fehér, ha leállt, és piros, ha hibára futott.
- A Loaded sor megmutatja, hogy a szolgáltatás elindul-e a rendszerindításkor (
enabled) vagy sem (disabled). - Az Active sor megmutatja, hogy a szolgáltatás éppen fut (
active (running)), leállt (inactive (dead)) vagy hibára futott (failed), és mióta. - Alul a szolgáltatás naplójának utolsó sorai láthatók. Gyakran már itt kiderül, mi a hiba oka.
Indítás, leállítás és újratöltés
| Parancs | Mit csinál |
|---|---|
sudo systemctl start nginx | Indítás most |
sudo systemctl stop nginx | Leállítás most |
sudo systemctl restart nginx | Leállítás és újraindítás |
sudo systemctl reload nginx | A konfiguráció újraolvasása leállítás nélkül |
A restart és a reload közötti különbség fontos. Restart esetén a szolgáltatás rövid időre leáll, és ha az új konfigurációban hiba van, nem indul el újra, így a weboldala elérhetetlenné válik. Reload esetén a szolgáltatás tovább fut; hiba esetén az nginx megtartja a régi konfigurációt. Ezért először tesztelje a konfigurációt (sudo nginx -t, sudo sshd -t), és csak utána használja a reloadot. Nem minden szolgáltatás támogatja a reloadot; a sudo systemctl reload-or-restart parancs maga választ.
Rendszerindításkor: enable és disable
Az indítás és a „rendszerindításkor való indítás” két különböző dolog. Ha egy szolgáltatást csak a start paranccsal indít el, a következő újraindítás után, például egy kernelfrissítést követően, már nem fog futni.
| Parancs | Mit csinál |
|---|---|
sudo systemctl enable --now nginx | Indítás most, és ezentúl minden rendszerindításkor. Ezt használja új szolgáltatás esetén |
sudo systemctl disable --now nginx | Leállítás most, és rendszerindításkor sem indul el többé |
systemctl is-enabled nginx | Megmutatja, hogy a szolgáltatás elindul-e rendszerindításkor |
Mi a hiba? És mi fut?
systemctl --failed
Ez a parancs az összes hibára futott szolgáltatást megjeleníti. A listának üresnek kell lennie. Ellenőrizze minden újraindítás és minden frissítés után. Ha megoldotta a problémát, a sudo systemctl reset-failed paranccsal törölheti a jelzést.
- A
systemctl list-units --type=service --state=runningmegjeleníti az összes futó szolgáltatást. Ha valamelyiket nem ismeri, nézzen utána, mit csinál. Egy szolgáltatás, amelyre nincs szüksége, felesleges belépési pont. - A
systemctl list-timersa systemd ütemezett feladatait mutatja, azzal együtt, hogy mikor futottak utoljára és mikor futnak legközelebb. Így láthatja például, hogy működnek-e az automatikus frissítések vagy a tanúsítványok megújításának időzítői.
Egy szolgáltatás naplói
Ha többet szeretne látni, mint a systemctl status néhány sora, használja a journalctl parancsot:
sudo journalctl -u nginx --since "1 hour ago" sudo journalctl -u nginx -p err -b
Az első az nginx összes bejegyzését mutatja az elmúlt órából, a második csak a hibákat a legutóbbi újraindítás óta. További parancsokat a Naplók olvasása a journalctl és a docker logs segítségével című cikkben talál.
Egy szolgáltatás beállításainak módosítása
Egy csomag unitfájlját (a /usr/lib/systemd/system/ könyvtárban) soha ne módosítsa, mert egy frissítés felülírja. Használja helyette a sudo systemctl edit nginx parancsot: ez egy kis fájlt hoz létre, amely csak az Ön módosításait tartalmazza, és a systemd újra beolvassa a beállításokat. Hogy végül mi van érvényben, azt a systemctl cat nginx paranccsal nézheti meg.
sudo systemctl reboot paranccsal, vagy a VPS-képernyő Újraindítás gombjával. A kényszerített kikapcsolás olyan, mintha kihúzná a tápkábelt: a szolgáltatások nem tudnak szabályosan leállni, és egy adatbázis megsérülhet. Lásd: A VPS-képernyő: be- és kikapcsolás, grafikonok, rendszer és napló.AlmaLinux és Rocky Linux rendszeren a systemctl pontosan ugyanígy működik, csak néhány szolgáltatás neve eltér: az SSH-szolgáltatás neve ott nem ssh, hanem sshd, az Apache neve httpd, a tűzfalé pedig firewalld.
Szeretne többet megtudni? Végezze el az ingyenes VPS és Linux-szerverüzemeltetés tanfolyamot, a 6.1 Szolgáltatások kezelése a systemd segítségével vagy a 6.2 Naplók olvasása a journalctl segítségével leckét.
