Upravljanje servisima pomoću systemctl na Vašem VPS-u
Na Vašem VPS-u rade programi koji moraju biti stalno dostupni: SSH poslužitelj, web poslužitelj, baza podataka. Takvi se programi nazivaju servisi. Na Debianu, Ubuntuu, AlmaLinuxu i Rocky Linuxu pokreće ih i nadzire systemd, a systemdom upravljate naredbom systemctl. Ovo su naredbe koje ćete najčešće trebati.
Status servisa
systemctl status nginx
Nastavak .service možete izostaviti. Ispis čitajte odozgo prema dolje:
- Kružić ispred naziva zelen je ako servis radi, bijel ako je zaustavljen i crven ako nije uspio.
- Loaded pokazuje pokreće li se servis pri pokretanju sustava (
enabled) ili ne (disabled). - Active pokazuje radi li servis trenutačno (
active (running)), je li zaustavljen (inactive (dead)) ili nije uspio (failed) te od kada. - Na dnu se nalaze posljednji retci iz zapisnika servisa. Ondje često već piše zašto nešto ne radi.
Pokretanje, zaustavljanje i ponovno učitavanje
| Naredba | Što radi |
|---|---|
sudo systemctl start nginx | Odmah pokreće servis |
sudo systemctl stop nginx | Odmah zaustavlja servis |
sudo systemctl restart nginx | Zaustavlja i ponovno pokreće servis |
sudo systemctl reload nginx | Ponovno učitava konfiguraciju bez zaustavljanja |
Razlika između restart i reload je važna. Pri restartu se servis nakratko zaustavlja, a ako u novoj konfiguraciji postoji greška, više se ne pokreće i Vaša web stranica prestaje raditi. Pri reloadu servis nastavlja raditi; nginx u slučaju greške zadržava staru konfiguraciju. Zato najprije testirajte konfiguraciju (sudo nginx -t, sudo sshd -t), a zatim upotrijebite reload. Ne podržava svaki servis reload; sudo systemctl reload-or-restart sam odabire.
Pri pokretanju sustava: enable i disable
Pokretanje i "pokretanje pri pokretanju sustava" dvije su različite stvari. Ako servis pokrenete samo naredbom start, nakon sljedećeg ponovnog pokretanja, primjerice zbog ažuriranja kernela, ponovno ga nema.
| Naredba | Što radi |
|---|---|
sudo systemctl enable --now nginx | Odmah pokreće servis i ubuduće ga pokreće pri pokretanju sustava. Upotrijebite ovo za novi servis |
sudo systemctl disable --now nginx | Odmah zaustavlja servis i više ga ne pokreće pri pokretanju sustava |
systemctl is-enabled nginx | Pokazuje pokreće li se servis pri pokretanju sustava |
Što ne radi? I što je pokrenuto?
systemctl --failed
Ovo prikazuje sve servise koji nisu uspjeli. Popis bi trebao biti prazan. Provjerite ga nakon svakog ponovnog pokretanja i svake nadogradnje. Kada riješite problem, obavijest uklonite naredbom sudo systemctl reset-failed.
systemctl list-units --type=service --state=runningprikazuje sve pokrenute servise. Ako neki ne prepoznajete, istražite čemu služi. Servis koji Vam ne treba nepotreban je ulaz u sustav.systemctl list-timersprikazuje zakazane zadatke systemda, uz podatak kada su se posljednji put izvršili i kada će se ponovno izvršiti. Tako primjerice vidite rade li timeri za automatska ažuriranja ili obnovu certifikata.
Zapisnici servisa
Želite li vidjeti više od nekoliko redaka u systemctl status, upotrijebite journalctl:
sudo journalctl -u nginx --since "1 hour ago" sudo journalctl -u nginx -p err -b
Prva naredba prikazuje sve zapise nginxa u posljednjih sat vremena, a druga samo greške od posljednjeg ponovnog pokretanja. Više naredbi pronaći ćete u članku Čitanje zapisnika pomoću journalctl i docker logs.
Prilagodba postavki servisa
Unit datoteku paketa (u /usr/lib/systemd/system/) nikada ne mijenjajte jer je ažuriranje prepisuje. Upotrijebite sudo systemctl edit nginx: time se stvara mala datoteka samo s Vašim izmjenama, a systemd je ponovno učitava. Što na kraju vrijedi, možete vidjeti naredbom systemctl cat nginx.
sudo systemctl reboot ili opcijom Ponovno pokretanje na VPS zaslonu. Prisilno isključivanje jednako je izvlačenju utikača: servisi nemaju priliku uredno se zaustaviti, a baza podataka se može oštetiti. Pogledajte VPS zaslon: uključivanje i isključivanje, grafikoni, sustav i zapisnik.Na AlmaLinuxu i Rocky Linuxu systemctl radi potpuno jednako, samo se neki servisi drukčije zovu: SSH servis ondje se zove sshd umjesto ssh, Apache se zove httpd, a vatrozid firewalld.
Želite li naučiti više? Pohađajte besplatni tečaj VPS i upravljanje Linux poslužiteljem, lekciju 6.1 Upravljanje servisima pomoću systemd ili lekciju 6.2 Čitanje zapisnika pomoću journalctl.
