Teenuste haldamine systemctl abil sinu VPS-is
Sinu VPS-is töötavad programmid, mis peavad alati olemas olema: SSH-server, veebiserver, andmebaas. Selliseid programme nimetatakse teenusteks. Debianis, Ubuntus, AlmaLinuxis ja Rocky Linuxis käivitab ja jälgib neid systemd ning systemd'd juhid käsuga systemctl. Siin on käsud, mida vajad kõige sagedamini.
Teenuse olek
systemctl status nginx
Laiendi .service võid ära jätta. Loe väljundit ülevalt alla:
- Nime ees olev täpp on roheline, kui teenus töötab, valge, kui see on peatatud, ja punane, kui see on ebaõnnestunud.
- Loaded näitab, kas teenus käivitub süsteemi käivitamisel (
enabled) või mitte (disabled). - Active näitab, kas teenus praegu töötab (
active (running)), on peatatud (inactive (dead)) või ebaõnnestunud (failed), ja alates millest. - All on teenuse logi viimased read. Sageli on seal juba kirjas, miks midagi valesti läheb.
Käivitamine, peatamine ja uuesti laadimine
| Käsk | Mida see teeb |
|---|---|
sudo systemctl start nginx | Käivitab kohe |
sudo systemctl stop nginx | Peatab kohe |
sudo systemctl restart nginx | Peatab ja käivitab uuesti |
sudo systemctl reload nginx | Loeb konfiguratsiooni uuesti sisse ilma peatamata |
Erinevus restart'i ja reload'i vahel on oluline. Restardi korral peatub teenus hetkeks ja kui uues konfiguratsioonis on viga, siis see enam ei käivitu ning sinu veebisait on maas. Reloadi korral jääb teenus tööle; vea korral jätkab nginx vana konfiguratsiooniga. Seepärast testi esmalt konfiguratsiooni (sudo nginx -t, sudo sshd -t) ja kasuta siis reloadi. Kõik teenused ei toeta reloadi; sudo systemctl reload-or-restart valib ise.
Süsteemi käivitamisel: enable ja disable
Käivitamine ja „süsteemi käivitamisel käivitamine” on kaks eri asja. Kui käivitad teenuse ainult käsuga start, on see pärast järgmist taaskäivitust, näiteks kerneli uuenduse tõttu, jälle kadunud.
| Käsk | Mida see teeb |
|---|---|
sudo systemctl enable --now nginx | Käivitab kohe ja edaspidi ka süsteemi käivitamisel. Kasuta seda uue teenuse puhul |
sudo systemctl disable --now nginx | Peatab kohe ja ei käivita enam süsteemi käivitamisel |
systemctl is-enabled nginx | Näitab, kas teenus käivitub süsteemi käivitamisel |
Mis on valesti? Ja mis töötab?
systemctl --failed
See näitab kõiki ebaõnnestunud teenuseid. Loend peaks olema tühi. Vaata seda pärast iga taaskäivitust ja iga uuendust. Kui oled probleemi lahendanud, eemalda teade käsuga sudo systemctl reset-failed.
systemctl list-units --type=service --state=runningnäitab kõiki töötavaid teenuseid. Kui mõni on sulle tundmatu, uuri välja, mida see teeb. Teenus, mida sa ei vaja, on tarbetu sissepääs.systemctl list-timersnäitab systemd ajastatud ülesandeid koos sellega, millal need viimati töötasid ja millal need uuesti töötavad. Nii näed näiteks, kas automaatsete uuenduste või sertifikaatide uuendamise taimerid töötavad.
Teenuse logid
Kui tahad näha rohkem kui need mõned read systemctl status väljundis, kasuta journalctl:
sudo journalctl -u nginx --since "1 hour ago" sudo journalctl -u nginx -p err -b
Esimene näitab kõike nginxi kohta viimase tunni jooksul, teine ainult vigu alates viimasest taaskäivitusest. Rohkem käske leiad artiklist Logide lugemine journalctl ja docker logs abil.
Teenuse seadete muutmine
Paketi unit-faili (kaustas /usr/lib/systemd/system/) ära kunagi muuda, sest uuendus kirjutab selle üle. Kasuta käsku sudo systemctl edit nginx: see loob väikese faili ainult sinu muudatustega ja laseb systemd'l selle uuesti sisse lugeda. Mis lõpuks kehtib, näed käsuga systemctl cat nginx.
sudo systemctl reboot või nupuga Taaskäivita VPS-i vaates. Sundväljalülitus on sama, mis pistiku seinast tõmbamine: teenused ei saa korralikult peatuda ja andmebaas võib kahjustuda. Vaata artiklit VPS-i vaade: sisse ja välja, graafikud, süsteem ja logi.AlmaLinuxis ja Rocky Linuxis töötab systemctl täpselt samamoodi, ainult mõne teenuse nimi on teine: SSH-teenus on seal sshd, mitte ssh, Apache on httpd ja tulemüür firewalld.
Tahad rohkem teada? Läbi tasuta kursus VPS ja Linuxi serveri haldus, õppetund 6.1 Teenuste haldamine systemd abil või õppetund 6.2 Logide lugemine journalctl-iga.
