Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 10964|Răspunde: 8

[Linux] Managerul de servicii Linux systemd explicat în detaliu

[Copiază linkul]
Postat pe 28.11.2021 10:02:32 | | | |
systemd este un set de blocuri de bază pentru sistemele Linux. Oferă un manager de sistem și servicii care rulează și pornește restul sistemului ca PID 1.

systemd oferă capabilități agresive de paralelizare, utilizează socket-uri și activarea D-Bus pentru a porni servicii, oferă pornire la cerere a daemonilor, utilizează grupuri de control Linux pentru a urmări procesele, menține mount-uri și puncte auto-mount și implementează o logică de control a serviciilor, bazată pe dependență de tranzacții, bine proiectată. systemd suportă scripturi init SysV și LSB și poate înlocui sysvinit.

Alte secțiuni includ demoni de jurnal, utilitare pentru controlul configurațiilor de bază ale sistemului precum nume de gazdă, date, locații, menținerea unei liste a utilizatorilor autentificați și a containerelor și mașinilor virtuale care rulează, conturi de sistem, directoare de rulare și setări, precum și gestionarea configurațiilor daemonilor pentru rețele simple, sincronizarea orei rețelei, redirecționarea logurilor și rezolvarea numelor.

Fișierul de configurare systemd există în următoarele trei foldere:         

/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。

/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。

/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。
Recenzie:

Linux analizează ieșirea jurnalului serviciului Systemd
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Adaugă un nod Linux și înregistrează-l ca serviciu
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 instalează exportatorul Node
https://www.itsvse.com/thread-9969-1-1.html

Profilul unității

Un fișier unitate în systemd este un fișier care codifică informații despre diferitele unități pe care systemd le poate gestiona, inclusiv servicii, socket-uri, dispozitive și așa mai departe. Acest ghid se concentrează pe servicii, caz în care fișierul unitar cu care lucrăm este fișierul .service. Fișierul de configurare al dispozitivului varnish.service conține informații despre modul în care systemd ar trebui să execuțe, să monitorizeze și să gestioneze daemonul de varnish.

Blocul [Unit] este de obicei primul bloc al fișierului de configurare și este folosit pentru a defini metadatele Unității și modul în care acestea se raportează la alte Unități. Principalele sale domenii sunt următoarele.

  • Descriere: O scurtă descriere
  • Documentație: Adresa documentului
  • Necesită: Alte unități de care depinde unitatea curentă, iar dacă nu funcționează, unitatea curentă nu va porni
  • Doresc: Alte unități care lucrează cu unitatea curentă, dacă nu funcționează, unitatea curentă nu va eșua la pornire
  • BindsTo: Similar cu Exiges, specifică o unitate care face ca unitatea curentă să se oprească dacă se desprinde
  • Înainte: Dacă Unitatea specificată în acest câmp urmează să fie de asemenea pornită, trebuie să fie pornită după Unitatea curentă
  • După: Dacă Unitatea specificată în acest câmp urmează să fie de asemenea pornită, aceasta trebuie pornită înaintea Unității curente
  • Conflicte: Unitatea specificată aici nu poate funcționa în același timp cu unitatea curentă
  • Condiție... : Condițiile care trebuie îndeplinite pentru ca unitatea curentă să funcționeze, altfel nu va funcționa
  • Afirma... : Condițiile care trebuie îndeplinite pentru ca unitatea curentă să funcționeze, altfel va fi raportată eșecul la pornire

[Instalare] este de obicei ultimul bloc al fișierului de configurare care definește cum să pornească și dacă să pornească. Principalele sale domenii sunt următoarele.

  • WantedBy: Valoarea sa este una sau mai multe Ținte, iar când unitatea curentă este activă (activă), legătura simbologică este plasată într-un subdirector sub directorul /etc/systemd/system cu sufixul Target name + .wants
  • RequiredBy: Valoarea sa este una sau mai multe Ținte, iar când unitatea curentă este activă, legătura simbologică va fi plasată într-un subdirector sub directorul /etc/systemd/system cu sufixul Target + .required
  • Alias: Aliasul pe care unitatea actuală îl poate folosi pentru a începe
  • De asemenea: Când unitatea curentă este activată, celelalte unități vor fi activate simultan

Blocul [Service] este folosit pentru a configura Service-ul, iar doar unitățile de tip Service au acest bloc. Principalele sale domenii sunt următoarele.

  • Tip: Definește comportamentul procesului la pornire. Are următoarele valori.
  • Type=simple: Valoarea implicită, execută comanda specificată de ExecStart pentru a începe procesul principal
  • type=forking: Fork creează un proces copil din procesul părinte, care va ieși imediat după creare
  • Tip=oneshot: Un proces unică, Systemd va aștepta ca serviciul curent să iasă înainte de a continua executarea
  • Tip=dbus: Serviciul curent începe prin D-Bus
  • type=notify: Când serviciul curent este pornit, Systemd va fi notificat și va continua executarea
  • type=idle: Serviciul curent va rula doar dacă alte sarcini sunt executate
  • ExecStart: Comanda de a începe serviciul curent
  • ExecStartPre: Comanda executată înainte de a începe serviciul curent
  • ExecStartPost: Comanda executată după pornirea serviciului curent
  • ExecReload: Comanda care se execută când serviciul curent este repornit
  • ExecStop: Comanda executată când serviciul curent este oprit
  • ExecStopPost: Oprește comanda executată când este servită
  • RestartSec: Numărul de secunde dintre serviciile automate repornește serviciul curent
  • Restartare: Definește circumstanțele în care Systemd va reporni automat serviciul curent, cu valori posibile precum întotdeauna, on-successful, on-failure, on-anormal, on-abort, on-watchdog
  • TimeoutSec: Definește numărul de secunde în care Systemd așteaptă înainte de a opri serviciul curent
  • Mediu: Specifică variabila de mediu

Instrument de management Systemctl

Managementul programelor în CentOS este practic realizat de unealta systemctl.

Serviciu de pornire:

systemctl start name.service

Întreruperea serviciului:

systemctl nume de oprire.serviciu

Repornirea serviciului:

systemctl restart name.service

Vizualizare status:

systemctl status, nume.serviciu

Restart condiționat:

Dacă serviciul a fost pornit înainte, acesta va fi repornit, iar dacă serviciul nu este pornit, nu va mai fi operat

systemctl try-restart name.service

Reîncarcă sau repornește:

Reîncarcă mai întâi, iar dacă reîncărcarea nu reușește, repornește

systemctl reload-or-restart name.service

Reîncărcare sau repornire condiționată:

systemctl reload-or-try-restart name.service

Stabilește dacă serviciul poate fi setat de utilizator pentru a porni starea

systemctl unmask name.service

SystemCTL mask name.service este interzis

Consultați stadiul actual de activare al serviciului:

Valoarea returnării statusului comenzii service has started este 0 Valoarea returnării statusului comenzii care nu a fost pornită este non-0

systemctl is-active name.service

Vezi toate serviciile care au fost activate:

-t Specifică tipul de unitate afișată.

--toate afișează o listă mai detaliată de informații.

-un echivalent --- toate

SystemCTL unități-listă

Serviciul SystemCTL List-Units -T

SystemCTL list-unități -t serviciu -a

Vezi toate serviciile:

Unități de listă systemctl -a

Vizualizați toate stările serviciului:

SystemCTL list-unit-files

-a 、--all : Vezi stadiul tuturor serviciilor

-t 、--tip: Specifică tipul de unitate ce trebuie vizualizată

încărcat: Fișierul de configurare a fost încărcat, încărcat în memorie

active (în cursă): Run-uri care sunt procesate continuu de una sau de mai multe ori

activ(exited): Configurația unică este finalizată cu succes

activ(așteptând): Alearg, așteptând un eveniment

inactive:不运行

enabled:开机启动

disabled:开机不启动

static:开机不启动,但可被另一个启用的服务激活

Folosit pentru a lista nivelurile de operare la care serviciul este activat și dezactivat

ls /etc/systemd/system/*.wants/sshd.service

systemctl list-unit-files --type target --all

Pentru a seta serviciul să nu pornească:

SystemCTL dezactivează unitatea nume de serviciu

Verifică dacă serviciul este pornit și pornit:

SystemCTL is-activat name.service

Uită-te la dependențele de servicii:

systemctl list-dependencies name.service
systemctl list-depebdencies

Serviciu pentru încărcături grele:

systemctl daemon-reload

Oprește procesul:

Numele procesului systemctl kill

Resurse:

Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.





Precedent:Linux testează conectivitatea LDAP folosind comanda Curl
Următor:Problemă cu permisiunea fișierului de încărcare vsftp
 Proprietarul| Postat pe 11.12.2021 17:35:26 |
[Unitate]Un bloc este de obicei primul bloc al unui fișier de configurare care definește metadatele unei Unități și modul în care acestea se raportează la alte Unități. Principalele sale domenii sunt următoarele.

Descriere: O scurtă descriere
Documentație: Adresa documentului
Necesită: Alte unități de care depinde unitatea curentă, iar dacă nu funcționează, unitatea curentă nu va porni
Doresc: Alte unități care lucrează cu unitatea curentă, dacă nu funcționează, unitatea curentă nu va eșua la pornire
BindsTo: Similar cu Exiges, specifică o unitate care face ca unitatea curentă să se oprească dacă se desprinde
Înainte: Dacă Unitatea specificată în acest câmp urmează să fie de asemenea pornită, trebuie să fie pornită după Unitatea curentă
După: Dacă Unitatea specificată în acest câmp urmează să fie de asemenea pornită, aceasta trebuie pornită înaintea Unității curente
Conflicte: Unitatea specificată aici nu poate funcționa în același timp cu unitatea curentă
Condiție... : Condițiile care trebuie îndeplinite pentru ca unitatea curentă să funcționeze, altfel nu va funcționa
Afirma... : Condițiile care trebuie îndeplinite pentru ca unitatea curentă să funcționeze, altfel va fi raportată eșecul la pornire
[Instalare]De obicei, ultimul bloc al fișierului de configurare definește cum să pornești și dacă să pornești. Principalele sale domenii sunt următoarele.

WantedBy: Valoarea sa este una sau mai multe Ținte, iar când unitatea curentă este activă (activă), legătura simbologică este plasată într-un subdirector sub directorul /etc/systemd/system cu sufixul Target name + .wants
RequiredBy: Valoarea sa este una sau mai multe Ținte, iar când unitatea curentă este activă, legătura simbologică va fi plasată într-un subdirector sub directorul /etc/systemd/system cu sufixul Target + .required
Alias: Aliasul pe care unitatea actuală îl poate folosi pentru a începe
De asemenea: Când unitatea curentă este activată, celelalte unități vor fi activate simultan
[Serviciu]Blocuri sunt folosite pentru configurarea serviciilor, iar doar unitățile de tip Service au acest bloc. Principalele sale domenii sunt următoarele.

Tip: Definește comportamentul procesului la pornire. Are următoarele valori.
Type=simple: Valoarea implicită, execută comanda specificată de ExecStart pentru a începe procesul principal
type=forking: Fork creează un proces copil din procesul părinte, care va ieși imediat după creare
Tip=oneshot: Un proces unică, Systemd va aștepta ca serviciul curent să iasă înainte de a continua executarea
Tip=dbus: Serviciul curent începe prin D-Bus
type=notify: Când serviciul curent este pornit, Systemd va fi notificat și va continua executarea
type=idle: Serviciul curent va rula doar dacă alte sarcini sunt executate
ExecStart: Comanda de a începe serviciul curent
ExecStartPre: Comanda executată înainte de a începe serviciul curent
ExecStartPost: Comanda executată după pornirea serviciului curent
ExecReload: Comanda care se execută când serviciul curent este repornit
ExecStop: Comanda executată când serviciul curent este oprit
ExecStopPost: Oprește comanda executată când este servită
RestartSec: Numărul de secunde dintre serviciile automate repornește serviciul curent
Restartare: Definește circumstanțele în care Systemd va reporni automat serviciul curent, cu valori posibile precum întotdeauna, on-successful, on-failure, on-anormal, on-abort, on-watchdog
TimeoutSec: Definește numărul de secunde în care Systemd așteaptă înainte de a opri serviciul curent
Mediu: Specifică variabila de mediu


 Proprietarul| Postat pe 11.12.2021 17:37:33 |
Type=forking
SystemD consideră că serviciul pornește cu succes atunci când procesul de serviciu este forkat și procesul părinte iese. Pentru daemonii obișnuiți, dacă nu ești sigur că această metodă de pornire nu îți satisface nevoile, poți începe cu acest tip. Cu acest tip de pornire, PIDFile= ar trebui de asemenea specificat, astfel încât systemd să poată urmări procesul principal al serviciului

 Proprietarul| Postat pe 15.12.2021 16:55:14 |
Comanda EnvironmentFile

EnvironmentFile este similar cu directiva Environment, dar citește variabilele de mediu dintr-un fișier text. Fișierul text ar trebui să conțină atribuiri de variabile separate prin întreruperi de linie

exemplu

Poți lua acest fișier de mediu și să-i folosești variabilele astfel:



 Proprietarul| Postat pe 04.01.2022 15:56:55 |
 Proprietarul| Postat pe 05.01.2022 09:48:21 |
Calea implicită a fișierului de serviciu Docker /usr/lib/systemd/system/docker.service

 Proprietarul| Postat pe 23.01.2022 22:57:56 |
Vezi toate stările serviciului



Întrebați dacă un serviciu este pornit, folosind NFS ca exemplu:

 Proprietarul| Postat pe 25.02.2025 17:01:08 |
Servicii de start în vrac care încep cu ABC

 Proprietarul| Postat pe 11.04.2025 15:57:14 |
DefaultTimeoutStartSec= și DefaultTimeoutStopSec= au implicit 90 de secunde în System Manager și 90 de secunde în User Manager.

Autentificarea cu hyperlink este vizibilă.

Vizualizați configurația serviciului specificat cu următoarea comandă:


Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com