Un sistem Linux oferă o varietate de servicii de sistem (cum ar fi gestionarea proceselor, conectare, syslog, cron etc.) și servicii de rețea (cum ar fi conectare la distanță, e-mail, imprimante, găzduire web, stocare date, transfer de fișiere, rezoluție nume de domeniu (folosind DNS), alocare dinamică a adresei IP (folosind DHCP) și multe altele).
Tehnic, o serviciul este un proces sau un grup de procese (denumite în mod obișnuit sub numele de demoni) care rulează continuu în fundal și așteaptă să vină cererile (în special de la clienți).
Linux acceptă diferite moduri de gestionare (pornire, oprire, reporniți, activați pornirea automată la pornirea sistemului etc.), de obicei prin intermediul unui proces sau al unui manager de servicii. Majoritatea, dacă nu toate distribuțiile Linux moderne folosesc acum același manager de proces: systemd.
Citește și: Povestea din spatele „init” și „systemd”: De ce „init” trebuia înlocuit cu „systemd” în Linux
Systemd este un manager de sistem și servicii pentru Linux; un înlocuitor pentru procesul de inițiere, care este compatibil cu scripturile de inițiere SysV și LSB, iar comanda systemctl este instrumentul principal pentru gestionarea sistemului.
În acest ghid, vom arăta cum să listăm toate serviciile care rulează sub systemd în Linux.
Listarea serviciilor care rulează sub SystemD în Linux
Când rulați comanda systemctl fără niciun argument, va afișa o listă a tuturor unităților systemd încărcate (citiți documentația systemd pentru mai multe informații despre unitățile systemd), inclusiv serviciile, arătând starea acestora (indiferent dacă este activă sau nu).
# systemctl
Pentru a lista toate serviciile încărcate pe sistemul dvs. (indiferent dacă sunt active; rulează, a ieșit sau a eșuat, utilizați subcomanda list-units și --type
comutați cu o valoare a serviciului.
# systemctl list-units --type=serviceOR# systemctl --type=service
Și pentru a enumera toate serviciile încărcate, dar active, atât cele care rulează, cât și cele care au ieșit, puteți adăuga opțiunea --state
cu o valoare de active, după cum urmează.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Dar pentru a obține o privire rapidă asupra tuturor serviciilor care rulează (adică toate serviciile încărcate și care rulează activ), rulați următoarea comandă.
# systemctl list-units --type=service --state=running OR# systemctl --type=service --state=running
Dacă utilizați frecvent comanda anterioară, puteți crea o comandă alias în fișierul dvs. ~ / .bashrc așa cum se arată, pentru a o invoca cu ușurință.
# vim ~/.bashrc
Apoi adăugați următoarea linie sub lista de aliasuri, așa cum se arată în captura de ecran.
alias running_services="systemctl list-units --type=service --state=running"
Salvați modificările din fișier și închideți-l. Și de acum înainte, utilizați comanda „running_services” pentru a vizualiza o listă a tuturor serviciilor încărcate, care rulează activ pe serverul dvs.
# running_services#use the Tab completion
În plus, un aspect important al serviciilor este portul pe care îl folosesc. Pentru a determina portul pe care îl ascultă un proces demon, puteți utiliza instrumentele netstat sau ss așa cum se arată.
În cazul în care semnalizatorul -l
înseamnă tipăriți toate soclurile de ascultare, -t
afișează toate conexiunile TCP, -u
afișează toate conexiunile UDP, -n
înseamnă tipărirea numerelor numerice ale portului (în loc de numele aplicațiilor) și -p
înseamnă afișarea numelui aplicației.
# netstat -ltup | grep zabbix_agentdOR# ss -ltup | grep zabbix_agentd
a cincea coloană arată socketul: Adresă locală: Port. În acest caz, procesul zabbix_agentd ascultă pe portul 10050.
De asemenea, dacă serverul dvs. are un serviciu de firewall, care controlează cum să blocați sau să permiteți traficul către sau de la servicii sau porturi selectate, puteți lista serviciile sau porturile care au fost deschise în firewall, utilizând comanda firewall-cmd sau ufw (în funcție de distribuțiile Linux pe care le utilizați), așa cum se arată.
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status