Service vs. Systemctl

Service Vs Systemctl



Serviciul și systemctl sunt două utilitare de linie de comandă utilizate pentru a gestiona serviciile de sistem. Ambele utilitare aparțin la două sisteme de inițializare diferite, SysV și, respectiv, systemd.

În acest ghid, voi discuta despre comenzile service și systemctl și despre modul în care sunt diferite când vine vorba de managementul serviciului.

Înainte de a merge mai departe, să înțelegem mai întâi două sisteme Linux init populare; System și Systemd.







System V vs. Systemd

Sistemul init pe Linux este o parte crucială a procesului de pornire. Este primul proces cu PID 1 care inițiază atunci când sistemul pornește. Apoi pornește procesele prezente în fișierul inittab. System V cunoaște, de asemenea, un SysV, iar systemd sunt sisteme de init Linux populare.



The SysV este un sistem init mai vechi și a făcut parte din distribuțiile mai vechi Unix și Linux. Acesta gestionează serviciile de sistem utilizând scripturile situate în /etc/init.d. Unele distribuții Linux care încă folosesc SysV sunt Slackware, Gentoo și antiX Linux.



Pe de altă parte, systemd lansat în 2010 și a fost rapid adoptat de multe distribuții Linux. Sistemul systemd init gestionează serviciile prin fișiere .service. Acum face parte din toate distribuțiile Linux moderne, inclusiv Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu și distribuțiile bazate pe aceste sisteme de operare.





Systemd este mult mai eficient în comparație cu SysV. Oferă timp de pornire mai rapid, management eficient al serviciilor și gestionarea dependențelor.

Ambele sisteme init oferă două utilitare de linie de comandă pentru managementul serviciilor.



În următoarele secțiuni ale ghidului, voi discuta aceste două utilități.

Comanda de serviciu

The serviciu comanda este un înveliș de script care rulează scripturi situate în /etc/init.d director. A fost dezvoltat pentru a gestiona serviciul de SysV sau Sistemul V sistem init. Distribuțiile Linux care folosesc SysV ca sistem init folosesc serviciu comanda pentru managementul serviciului.

Sintaxa generală de utilizare a comenzii de serviciu este dată mai jos.

serviciu [ numele serviciului ] [ acțiune ]

Pentru a obține starea serviciilor controlate de System V, utilizați comanda service cu –starea-toate opțiune.

serviciu --status-toate

The + indică faptul că serviciul rulează și arată că serviciul este inactiv.

Starea curentă a oricărui serviciu specific poate fi verificată și prin menționarea numelui serviciului.

serviciu [ numele serviciului ] stare

Alte comenzi utile de serviciu, cum ar fi pornirea, oprirea și repornirea unui serviciu, sunt enumerate mai jos.

serviciu [ numele serviciului ] start

serviciu [ numele serviciului ] Stop

serviciu [ numele serviciului ] repornire

Această comandă de serviciu oferă control de bază pentru gestionarea serviciilor. Majoritatea distribuțiilor Linux au înlocuit SysV ca sistem de inițializare, dar din cauza compatibilității vechi, această comandă vine încă în multe cele mai recente distribuții Linux din nou.

Comanda systemctl

Folosind comanda systemctl, puteți controla serviciile din /lib/systemd/system și /etc/systemd/system directoare. Este o componentă a systemd; un sistem init găsit în majoritatea distribuțiilor Linux contemporane.

Systemctl este proiectat pentru a oferi mai mult control asupra managementului serviciilor de sistem. Sintaxa generală pentru utilizarea comenzii systemctl este dată mai jos:

systemctl [ opțiune ] [ numele serviciului ]

Pentru a verifica starea tuturor serviciilor, utilizați următoarea comandă.

listă-unități systemctl --tip =serviciu --toate

Pentru o utilizare specifică a serviciului:

starea systemctl [ numele serviciului ]

Comenzile pentru gestionarea de bază a serviciului folosind systemctl sunt prezentate mai jos:

systemctl permite [ numele serviciului ]

pornire systemctl [ numele serviciului ]

systemctl stop [ numele serviciului ]

systemctl dezactivat [ numele serviciului ]

reporniți systemctl [ numele serviciului ]

Comanda systemctl depășește atunci când vine vorba de controlul serviciilor. Tabelul de mai jos conține câteva comenzi avansate systemctl.

listă-căi Pentru a lista calea tuturor serviciilor din memorie
este activ [nume_serviciu] Pentru a verifica dacă serviciul sau unitatea funcționează sau nu
list-dependencies [nume_serviciu] Pentru a tipări lista de dependențe ale serviciului specificat
resetarea a eșuat Pentru a reseta serviciile care nu s-au încărcat din cauza unor anomalii
masca [nume_serviciu] Pentru a dezactiva serviciul și îl face să nu poată porni
get-default Pentru a imprima nivelul de rulare sau ținta implicită
set-default [țintă] Pentru a seta nivelul de rulare sau ținta implicită
este-sistemul-rulează Pentru a verifica starea de funcționare a sistemului
reporniți Pentru a reporni sistemul
oprire Pentru a opri sistemul

De ce există încă un serviciu Command în Linux Distributions cu systemd init System

Comanda de serviciu este încă parte a multor distribuții Linux, deoarece este un script wrapper și face abstracție de sistemul init subiacent, indiferent dacă este SysV sau systemctl. De exemplu, pe Ubuntu, comanda de serviciu redirecționează către systemctl.

Concluzie

Serviciul și systemctl sunt două utilitare de linie de comandă aparținând sistemelor SysV și, respectiv, systemd init. În ciuda înlocuirii comenzii de serviciu în distribuțiile moderne Linux, aceasta rămâne un instrument cheie pentru întreținerea serviciilor datorită simplității și compatibilității. Systemctl, pe de altă parte, face parte din toate distribuțiile Linux actuale și oferă opțiuni avansate pentru administrarea serviciilor.