În calitate de administrator de sistem, probabil aveți de-a face cu o mulțime de servicii în fiecare zi.
Pe Linux , serviciile sunt utilizate în mai multe scopuri diferite.
Acestea pot fi folosite pentru a porni un server SSH pe mașina dvs. sau pot efectua unele operații într-o anumită oră sau zi.
Fie că utilizați o distribuție bazată pe Debian sau unul RedHat, serviciile de interogare sunt foarte asemănătoare.
Cu toate acestea, având în vedere distribuția pe care o utilizați, și mai precis sistemul de inițializare (init sau systemd), poate fi necesar să utilizați diferite comenzi.
În acest tutorial, veți învăța cum puteți, având în vedere managerul de sistem, să enumerați toate serviciile de pe computerul dvs. Linux.
Cuprins
Determinați manager de sistem utilizat
După cum probabil știți, distribuțiile recente utilizează managerul de sistem Systemd.
Cu toate acestea, nu a fost întotdeauna cazul: în trecut, majoritatea distribuțiilor foloseau managerul de sistem SysVinit.
În consecință, există într-adevăr două moduri de gestionare a serviciilor dvs. pe un sistem Linux.
Înainte de a învăța comenzile de listare a serviciilor, trebuie să știți managerul de sistem pe care îl utilizați în prezent.
Pentru a determina managerul de sistem actual, cel mai simplu mod este să utilizați „ pstree ”și pentru a verifica primul proces rulat vreodată pe sistemul dvs.
Dacă vedeți „systemd”, înseamnă în mod evident că utilizați în prezent systemd. Cu toate acestea, dacă vedeți „ init „, înseamnă că utilizați SysVinit.
Pe Ubuntu 14.04, care încă folosește vechiul sistem init,„ pstree ”poate arăta astfel.
Listează serviciile utilizând systemctl
Cel mai simplu mod de a lista serviciile pe Linux, atunci când vă aflați într-un sistem systemd, este să utilizați comanda „systemctl” urmată de „list-units”. Puteți specifica opțiunea „–type = service” pentru a restrânge rezultatele numai la servicii.
În mod implicit, această comandă vă va arăta numai serviciile active sau serviciile care au eșuat în sistemul dvs. În captura de ecran de mai sus, majoritatea serviciilor sunt active, dar serviciul logrotate (evidențiat cu roșu) este marcat ca eșuat.
Minunat, ați aflat cum puteți lista cu ușurință serviciile dvs. pe un server Linux.
Cu toate acestea, după cum ați observat, nu ați avut acces la toate serviciile: ce se întâmplă cu serviciile inactive? Ce se întâmplă cu serviciile care nu au fost încărcate de systemd la pornire?
Enumerați toate serviciile pe Linux folosind list-units
Pentru a lista toate serviciile, adică active și inactive, trebuie să utilizați comanda „systemctl list-units” urmată de opțiunea „–all”.
În mod similar, puteți limita rezultatele la servicii numai utilizând filtrul de tip.
După cum puteți vedea, sunt listate și serviciile inactive care ar putea fi convenabile dacă tocmai ați scris serviciul dvs. și îl veți avea grijă de el în listă.
În acest caz, sunt listate numai serviciile încărcate. La pornire, systemd încarcă fișiere unitare și poate alege să nu încarce un anumit serviciu dacă constată că nu va fi folosit de sistem.
Prin urmare, există o diferență reală între „încărcat ”Și serviciile„ instalate ”. Serviciile „instalate” înseamnă că fișierele unitare pot fi găsite în căile corespunzătoare.
Listează serviciile în funcție de stat
În unele cazuri, s-ar putea să te intereseze doar serviciile care au eșuat. Pentru aceasta, poți specifica starea pe care îl căutați ca opțiune a comenzii systemctl.
Unde „state” poate fi una dintre următoarele valori: activ, inactiv, activ, dezactivând, eșuat, ne-găsit sau mort.
De exemplu, dacă suntem interesați doar de serviciile „eșuate”, vom rula următoarea comandă
Listează toate fișierele de servicii folosind list-unit-files
În cele din urmă, dacă te interesează fișierele de servicii „încărcat”, „instalat”, „dezactivat”, precum și „activat”, există o altă comandă ar putea fi destul de la îndemână.
Pentru a lista toate fișierele de servicii disponibile, trebuie să utilizați comanda „systemctl” urmată de „list-unit-files”. Opțional, puteți specifica tipul utilizând opțiunea „–type = service”.
Alternativ, puteți utiliza comanda „grep” pentru a căuta căi specifice din sistemul dvs. care pot conține fișiere de servicii.
Felicitări, ați aflat cum puteți lista serviciilor dacă sistemul dvs. folosește systemd!
Listați serviciile folosind serviciul
Cel mai simplu mod de a lista serviciile pe Linux, atunci când vă aflați pe un sistem SystemV init, este să utilizați „ comanda service ”urmată de opțiunea„ –status-all ”. În acest fel, vi se va prezenta o listă completă de servicii pe sistemul dvs.
După cum puteți vedea, fiecare serviciu este listate precedate de simboluri între paranteze. Aceste simboluri înseamnă:
- +: înseamnă că serviciul e rulează;
- -: înseamnă că serviciul nu rulează deloc;
- ? : înseamnă că Ubuntu nu a reușit să afle dacă serviciul rulează sau nu.
Deci, de ce unele servicii pot spune dacă rulează sau nu, iar altele nu sunt capabile?
Totul se rezumă la implementarea scriptului init. În unele scripturi, cum ar fi scriptul udev, de exemplu, puteți vedea că comanda „status” este implementată.
Acest lucru nu este cazul pentru scriptul” dns-clean „, de exemplu, care este motivul pentru care aveți o întrebare marcați atunci când interogați acest serviciu.
Enumerați serviciile SysVinit în foldere
Un alt mod de listare a listei curente de servicii este să utilizați comanda „ls” din folderele care conțin toate scripturile de pe un sistem Linux, și anume „/etc/init.d”.
Concluzie
În acest tutorial, ați aflat cum puteți lista cu ușurință servicii pe un sistem Linux indiferent dacă utilizați cele systemd sau SysVinit.
Dacă sunteți interesat să creați propriile servicii, vă recomandăm să consultați următoarele resurse. Acestea ar putea fi foarte utile pentru a realiza corect acest lucru.
- Scrierea unui script de pornire pentru sistemele init;
- Pornirea serviciilor la boot folosind systemd;
Dacă sunteți interesat de Administrarea sistemului Linux, avem o secțiune completă despre acest subiect pe site, așa că asigurați-vă că o verificați.
Icoane realizate de Freepik din FlatIcon