Cum se gestionează serviciile Systemd cu Systemctl?

Sistemul implicit și managerul de servicii pentru majoritatea distribuțiilor Linux acum sunt systemd.


Procesul systemd înlocuiește SysV init. Acesta rulează ca primul proces după pornirea kernel-ului și este responsabil pentru aducerea gazdei Linux la starea în care poate fi utilizat. Este responsabil pentru pornirea și administrarea serviciilor, montarea sistemelor de fișiere, gestionarea hardware-ului, generarea promptului de conectare și multe altele.

Un beneficiu esențial pentru SysV este faptul că sistemuld pornește cât mai multe servicii în paralel, accelerând astfel procesul de pornire și crește mai rapid ecranul de conectare..

Unități

Elementele care sunt gestionate de sistemd se numesc unități. Fișierele unității sunt localizate în / lib / systemd / system.

Unități de servicii

Pentru gestionarea serviciilor, unitățile țintă sunt unități de servicii, care au fișiere de unități cu sufixul de .serviciu.

Gestionarea serviciilor de sistem

Comanda de gestionare a unităților systemd este systemctl.

Servicii de pornire și oprire

Pentru a porni un serviciu systemd, utilizați comanda systemctl start:

$ sudo systemctl start nume.service

Puteți lăsa sufixul .service. De exemplu, pentru a porni serverul apache pe Ubuntu:

$ sudo systemctl start apache2

Pentru a opri un serviciu de rulare:

$ sudo sistemctl stop nume.service

Deci, pentru a opri serverul apache pe Ubuntu:

$ sudo systemctl stop apache2

Repornirea și reîncărcarea serviciilor

Pentru a reporni un serviciu în curs de rulare, utilizați comanda de repornire:

$ sudo systemctl restart name.service

Și acolo unde este necesar singurul fișier de configurare de reîncărcare

$ sudo systemctl reîncărcare nume.service

Activarea și dezactivarea serviciilor

Dacă doriți ca un serviciu să pornească automat la pornirea sistemului, folosiți comanda activare:

$ sudo systemctl activează numele.service

Pentru a dezactiva un serviciu de la pornirea sistemului:

$ sudo systemctl dezactivează name.service

Dezactivarea nu oprește un serviciu în funcțiune.

Vizualizarea stării serviciului

Pentru a vizualiza informații despre un serviciu:

$ sudo systemctl name status.service

Aceasta vă va arăta starea serviciului și primele câteva linii ale fișierului jurnal. Deci, în timp ce serviciul este în curs de execuție, rezultatul este

sudo systemctl status apache2

este

apache2.service – Serverul HTTP Apache
Încărcat: încărcat (/lib/systemd/system/apache2.service; activat; presetarea furnizorului: activată)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Activ: activ (în funcțiune) din Tue 2020-05-19 22:11:36 UTC; acum 4 zile
Proces: 116002 ExecReload = / usr / sbin / apachectl graceful (cod = ieșit, status = 0 / SUCCESS)
PID principal: 104165 (apache2)
Sarcini: 55 (limită: 1024)
CGroup: /system.slice/apache2.service
├─104165 / usr / sbin / apache2 -k start
├─116006 / usr / sbin / apache2 -k start
└─116007 / usr / sbin / apache2 -k start

19 mai 22:11:36 ubuntu18 systemd [1]: Pornirea serverului HTTP Apache…
19 mai 22:11:36 ubuntu18 systemd [1]: A început serverul Apache HTTP.
21 mai 06:25:01 ubuntu18 systemd [1]: Reîncărcarea serverului HTTP Apache.
21 mai 06:25:01 ubuntu18 systemd [1]: Reîncărcat serverul HTTP Apache.
22 mai 06:25:01 ubuntu18 systemd [1]: Reîncărcarea serverului HTTP Apache.

Pentru a verifica dacă un serviciu este activ:

$ sudo systemctl este-active name.service

Deci, în timp ce serviciul apache2 rulează, rezultatul comenzii active este activ:

$ sudo systemctl este activ-apache2
activ

Pentru a verifica dacă un serviciu este activat:

$ sudo systemctl este activat name.service.

Vizualizarea stării sistemului

Toate comenzile pe care le-ați văzut până acum sunt folosite pentru a gestiona un singur serviciu. Când doriți o imagine de ansamblu asupra stării sistemului, utilizați următorul set de comenzi:

Pentru a vedea toate tipurile de unități

$ sudo systemctl -t ajutor
Tipuri de unități disponibile:
serviciu
priză
ţintă
dispozitiv
montură
automount
schimb
temporizator
cale
felie
domeniu

Pentru a enumera toate unitățile instalate, folosiți fișierele cu unități de listă

$ sudo systemctl list-unit-files
UNITATE FILE STATE
proc-sys-fs-binfmt_misc.automount static
-.montura generată
boot-efi.mount generat
dev-enormepages.mount static
dev-mqueue.mount static
mnt.mount generat
proc-sys-fs-binfmt_misc.mount static
sys-fs-fuse-links.mount static
sys-kernel-config.mount static
sys-kernel-debug.mount static
acpid.path activat
apport-autoreport.path activat
systemd-ask-password-console.path static
systemd-ask-password-plymouth.path static
systemd-ask-password-wall.path static
sesiune-161.scope tranzitoriu
conturile-daemon.service sunt activate

Ieșirea are doar două coloane File File și State. De obicei, starea va fi activată, dezactivată, statică sau mascată.

  • Static: Aceasta înseamnă că unitatea nu poate fi activată, execută o acțiune unică sau este o dependență a altei unități și nu poate fi rulată de unul singur.
  • Mascat: O unitate listată ca mascată înseamnă că este complet instabilă, deoarece este legată de / dev / null. Aceasta se numește mascarea unității. Acest lucru împiedică pornirea serviciului, manual sau automat.

Enumerați toate serviciile instalate

Comanda file-list-unit-files-files cu filtrul de serviciu -t sau –type arată numai starea serviciilor instalate.

$ sudo systemctl list-unit-files-file service

UNITATE FILE STATE
conturile-daemon.service sunt activate
acpid.service dezactivat
apache-htcacheclean.service dezactivat
[Email protected] dezactivat
apache2.service activat
[Email protected] dezactivat
apparmor.service activat
apport-autoreport.service static
[Email protected] static
apport.service generat
apt-daily-upgrade.service static
apt-daily.service static
atd.service activat
[Email protected] activat
blk-Availability.service activat
bootlogd.service mascat
bootlogs.service mascat

Pentru a vedea toate unitățile de servicii active, utilizați unități de listă cu -t service filter

$ sudo systemctl list-units -t service

UNITATEA DE ÎNCĂRCARE SUB DESCRIERE ACTIVĂ
conturi-daemon.service încărcate activ Serviciu de conturi care rulează
apache2.service încărcat activ care rulează Serverul HTTP Apache
apparmor.service încărcat activ a ieșit din inițializarea AppArmor
apport.service încărcat activ ieșit din LSB: generarea automată a raportului de avarie
atd.service încărcat activ care rulează Planificator de execuție amânat
blk-Availability.service încărcat activ ieșit Disponibilitatea dispozitivelor bloc
cloud-config.service încărcat activ a ieșit Aplicați setările specificate în cloud-con
cloud-final.service încărcat activ ieșit Executați utilizatorul cloud / scripturile finale
cloud-init-local.service încărcat activ ieșit din jobul inițial cloud-init (pre-networking)
cloud-init.service încărcat activ ieșit din jobul inițial cloud-init (serviciu de metadate
console-setup.service încărcat activ ieșit Setați fontul consolei și harta cheie
cron.service încărcat activ rulare activă Procesare regulată a programului de fundal dae

Rezultatul are următoarele coloane:

  • UNITATE: Numele unității de service systemd
  • SARCINĂ: Arată dacă definiția unității a fost citită și încărcată corect
  • ACTIV: Descrie dacă unitatea este activă.
  • SUB: Stare de activare la nivel scăzut a unității, oferind informații mai detaliate despre unitate. Aceasta va varia în funcție de tipul de unitate.
  • DESCRIERE: Descrierea unității de service.

Concluzie

Sper că asta vă oferă o idee despre utilizarea systemctl pentru gestionarea serviciilor pe Linux. Dacă sunteți interesat să aflați mai multe, puteți consulta acest lucru Curs de Mastery Linux.

ETICHETE:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map