În Linux, un serviciu este un program care rulează în fundal și oferă o funcție importantă sistemului: SSH pentru conectare remote, Nginx sau Apache pentru site-uri, MariaDB/MySQL pentru baze de date, cron pentru taskuri programate sau fail2ban pentru protecție. Pe distribuțiile moderne precum Ubuntu, Debian, Fedora, Rocky Linux sau AlmaLinux, multe servicii sunt controlate prin systemd, iar comanda principală pentru administrare este systemctl.
Un fișier de tip .service descrie un proces controlat și supravegheat de systemd, inclusiv cum pornește, ce dependențe are și cum se comportă la oprire sau restart.
Verificarea rapidă: systemctl status
Cea mai folosită comandă este:
systemctl status nume-serviciu
Exemple concrete:
systemctl status ssh
systemctl status nginx
systemctl status apache2
systemctl status mysql
systemctl status mariadb
La rezultat, uită-te la câteva linii importante:
Loaded: loaded
Active: active (running)
Main PID: 1234
Dacă vezi Active: active (running), serviciul rulează. Dacă vezi failed, inactive, dead sau exited, trebuie investigat. systemctl este comanda folosită pentru controlul managerului systemd și poate lista unități, arăta statusul lor și filtra unitățile după stare.
Atenție: un serviciu poate fi „enabled”, dar să nu ruleze acum. Sau poate rula acum, dar să nu pornească automat după restart.
Diferența dintre active și enabled
Pentru a vedea dacă un serviciu rulează în acest moment:
systemctl is-active nginx
Dacă răspunsul este:
active
serviciul rulează.
Pentru a vedea dacă pornește automat la boot:
systemctl is-enabled nginx
Răspunsuri posibile:
enabled
disabled
static
masked
enabled înseamnă că serviciul este configurat să pornească automat.
disabled înseamnă că nu pornește automat.
masked înseamnă că serviciul este blocat intenționat și nu poate fi pornit normal.
Pentru activare la boot:
sudo systemctl enable nginx
Pentru pornire imediată:
sudo systemctl start nginx
Pentru ambele:
sudo systemctl enable --now nginx
Verifică serviciile eșuate
O comandă foarte utilă pentru administratori este:
systemctl --failed
Aceasta listează unitățile aflate în stare de eroare. Manualul systemctl precizează că opțiunea --failed listează unitățile în stare failed, fiind echivalentă cu filtrarea după --state=failed.
Dacă vezi ceva aici, nu da restart imediat fără să citești eroarea. Următorul pas este:
systemctl status nume-serviciu
Apoi:
journalctl -u nume-serviciu -b
Citește logurile cu journalctl
journalctl afișează logurile păstrate de systemd-journald, serviciul care colectează și stochează date de log pentru sistem și servicii.
Pentru logurile unui serviciu din bootul curent:
journalctl -u nginx -b
Pentru ultimele 50 de linii:
journalctl -u nginx -n 50
Pentru urmărire live:
journalctl -u nginx -f
Pentru erori recente:
journalctl -u nginx -p err -b
Dacă Nginx nu pornește, logurile pot arăta cauza: port ocupat, configurare greșită, certificat SSL lipsă, permisiuni incorecte sau fișier de configurare invalid.
Verifică dacă serviciul ascultă pe portul corect
Un serviciu poate apărea ca activ, dar să nu răspundă unde te aștepți. Pentru porturi:
sudo ss -tulpen
Exemple:
- SSH ar trebui să asculte de obicei pe portul
22; - HTTP pe
80; - HTTPS pe
443; - MySQL/MariaDB pe
3306, de preferat local, nu expus public; - PostgreSQL pe
5432, de preferat local sau limitat.
Pentru Nginx:
sudo ss -tulpen | grep nginx
Pentru Apache:
sudo ss -tulpen | grep apache
Pentru SSH:
sudo ss -tulpen | grep ssh
Dacă un serviciu web rulează, dar portul 80 sau 443 nu apare, problema poate fi în configurare, firewall sau serviciul real care nu a pornit corect.
Verifică fișierul de configurare înainte de restart
Pentru Nginx:
sudo nginx -t
Pentru Apache:
sudo apachectl configtest
Pentru SSH:
sudo sshd -t
Dacă testul spune că există eroare, nu reporni serviciul până nu corectezi problema. Pe un server remote, o configurare greșită la SSH te poate bloca în afara serverului.
Rețeta practică de diagnostic
Când un serviciu nu merge, verifică în ordine:
systemctl status nume-serviciu
systemctl is-active nume-serviciu
systemctl is-enabled nume-serviciu
journalctl -u nume-serviciu -b -n 80
systemctl --failed
sudo ss -tulpen
Dacă ai modificat configurația, testează sintaxa înainte de restart. Dacă serviciul este critic, fă backup la fișierul de configurare înainte să îl schimbi.
Un administrator Linux bun nu repornește servicii la întâmplare. Verifică statusul, citește logurile, confirmă porturile, testează configurația și abia apoi aplică schimbarea. Așa reduci downtime-ul și eviți probleme mai mari decât cea inițială.
Surse folosite
systemctl — manual Linux pentru controlul serviciilor și unităților systemd.
systemctl — opțiunea --failed pentru listarea unităților eșuate.
systemd.service — structura fișierelor .service.
journalctl — afișarea logurilor din systemd journal.
systemd-journald — colectarea și stocarea logurilor de sistem.

















































