Pakalpojumu pārvaldība ar systemctl Jūsu VPS
Jūsu VPS darbojas programmas, kurām vienmēr jābūt pieejamām: SSH serveris, tīmekļa serveris, datubāze. Šādas programmas sauc par servisiem. Debian, Ubuntu, AlmaLinux un Rocky Linux sistēmās tās palaiž un uzrauga systemd, un systemd Jūs vadāt ar komandu systemctl. Šīs ir komandas, kas Jums būs nepieciešamas visbiežāk.
Servisa statuss
systemctl status nginx
Paplašinājumu .service varat izlaist. Lasiet izvadi no augšas uz leju:
- Punkts pirms nosaukuma ir zaļš, ja serviss darbojas, balts, ja tas ir apturēts, un sarkans, ja tā darbība ir beigusies ar kļūdu.
- Loaded norāda, vai serviss tiek palaists sistēmas startēšanas laikā (
enabled) vai ne (disabled). - Active norāda, vai tas pašlaik darbojas (
active (running)), ir apturēts (inactive (dead)) vai beidzies ar kļūdu (failed), un kopš kura laika. - Apakšā redzamas pēdējās rindas no servisa žurnāla. Bieži tur jau ir norādīts, kāpēc kaut kas nedarbojas.
Palaišana, apturēšana un pārlādēšana
| Komanda | Ko tā dara |
|---|---|
sudo systemctl start nginx | Palaist tagad |
sudo systemctl stop nginx | Apturēt tagad |
sudo systemctl restart nginx | Apturēt un palaist no jauna |
sudo systemctl reload nginx | Nolasīt konfigurāciju no jauna, neapturot servisu |
Atšķirība starp restart un reload ir svarīga. Veicot restart, serviss uz brīdi apstājas, un, ja jaunajā konfigurācijā ir kļūda, tas vairs netiek palaists un Jūsu vietne nav pieejama. Veicot reload, serviss turpina darboties; kļūdas gadījumā nginx saglabā veco konfigurāciju. Tāpēc vispirms pārbaudiet konfigurāciju (sudo nginx -t, sudo sshd -t) un tad izmantojiet reload. Ne visi servisi atbalsta reload; sudo systemctl reload-or-restart izvēlas pats.
Sistēmas startēšanas laikā: enable un disable
Palaišana un "palaišana sistēmas startēšanas laikā" ir divas dažādas lietas. Ja servisu palaižat tikai ar start, pēc nākamās restartēšanas, piemēram, kodola atjauninājuma dēļ, tas vairs nedarbojas.
| Komanda | Ko tā dara |
|---|---|
sudo systemctl enable --now nginx | Palaist tagad un turpmāk arī sistēmas startēšanas laikā. Izmantojiet to jaunam servisam |
sudo systemctl disable --now nginx | Apturēt tagad un vairs nepalaist sistēmas startēšanas laikā |
systemctl is-enabled nginx | Parāda, vai serviss tiek palaists sistēmas startēšanas laikā |
Kas nedarbojas? Un kas darbojas?
systemctl --failed
Tas parāda visus servisus, kuru darbība beigusies ar kļūdu. Sarakstam jābūt tukšam. Pārbaudiet to pēc katras restartēšanas un katra jauninājuma. Kad problēma ir novērsta, paziņojumu varat noņemt ar sudo systemctl reset-failed.
systemctl list-units --type=service --state=runningparāda visus darbojošos servisus. Ja kādu no tiem nepazīstat, noskaidrojiet, ko tas dara. Serviss, kas Jums nav vajadzīgs, ir lieka ieeja.systemctl list-timersparāda systemd plānotos uzdevumus, kā arī to, kad tie pēdējo reizi tika izpildīti un kad tiks izpildīti atkal. Tā varat, piemēram, pārliecināties, vai darbojas taimeri automātiskajiem atjauninājumiem vai sertifikātu atjaunošanai.
Servisa žurnāli
Ja vēlaties redzēt vairāk nekā dažas rindas komandā systemctl status, izmantojiet journalctl:
sudo journalctl -u nginx --since "1 hour ago" sudo journalctl -u nginx -p err -b
Pirmā komanda parāda visus nginx ierakstus pēdējās stundas laikā, otrā tikai kļūdas kopš pēdējās restartēšanas. Vairāk komandu atradīsiet rakstā Žurnālu lasīšana ar journalctl un docker logs.
Servisa iestatījumu pielāgošana
Pakotnes unit failu (mapē /usr/lib/systemd/system/) nekad nemainiet, jo atjauninājums to pārrakstīs. Izmantojiet sudo systemctl edit nginx: tas izveido nelielu failu tikai ar Jūsu izmaiņām un liek systemd to nolasīt no jauna. Kas galu galā ir spēkā, varat redzēt ar systemctl cat nginx.
sudo systemctl reboot vai ar pogu Restartēt VPS ekrānā. Piespiedu izslēgšana ir kā kontaktdakšas izraušana: servisiem nav iespējas korekti apstāties, un datubāze var tikt bojāta. Skatiet VPS ekrāns: ieslēgšana un izslēgšana, grafiki, sistēma un žurnāls.AlmaLinux un Rocky Linux sistēmās systemctl darbojas tieši tāpat, tikai dažiem servisiem ir citi nosaukumi: SSH serviss tur saucas sshd, nevis ssh, Apache saucas httpd, bet ugunsmūris firewalld.
Vēlaties uzzināt vairāk? Apgūstiet bezmaksas kursu VPS un Linux serveru pārvaldība, nodarbību 6.1 Pakalpojumu pārvaldība ar systemd vai nodarbību 6.2 Žurnālu lasīšana ar journalctl.
