Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 10964|Antwoord: 8

[Linux] Linux systemd service manager in detail uitgelegd

[Link kopiëren]
Geplaatst op 28-11-2021 10:02:32 | | | |
systemd is een set basisbouwstenen voor Linux-systemen. Het biedt een systeem en servicemanager die de rest van het systeem uitvoert en start als PID 1.

systemd biedt agressieve parallelisatiemogelijkheden, gebruikt sockets en D-Bus activatie om services te starten, biedt on-demand start van daemons, gebruikt Linux-controlegroepen om processen te volgen, onderhoudt mounts en automatische mount-punten, en implementeert goed ontworpen transaction-afhankelijkheidsgebaseerde servicecontrolelogica. systemd ondersteunt SysV- en LSB-init-scripts en kan sysvinit vervangen.

Andere secties omvatten logdaemons, hulpprogramma's om basisconfiguraties van systemen zoals hostnamen, data, locaties te beheren, het bijhouden van een lijst van ingelogde gebruikers en het draaien van containers en virtuele machines, systeemaccounts, runtime-mappen en instellingen, evenals het beheren van daemonconfiguraties voor eenvoudige netwerken, netwerktijdsynchronisatie, log forwarding en naamresolutie.

Het systemd-configuratiebestand bestaat in de volgende drie mappen:         

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

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

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

Linux kijkt naar de loguitvoer van de SystemD-service
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Voeg een Linux-node toe en registreer deze als een service
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 installeert de Node-exporter
https://www.itsvse.com/thread-9969-1-1.html

Eenheidsprofiel

Een eenheidsbestand in systemd is een bestand dat informatie codeert over de verschillende units die systemd kan beheren, waaronder services, sockets, apparaten, enzovoort. Deze gids richt zich op services, in welk geval het unitbestand waarmee we werken het .service-bestand is. Het varnish.service apparaatconfiguratiebestand bevat informatie over hoe systemd de varnish-daemon moet uitvoeren, monitoren en beheren.

Het [Unit]-blok is meestal het eerste blok van het configuratiebestand en wordt gebruikt om de metadata van de Unit te definiëren en hoe deze zich verhoudt tot andere Units. De belangrijkste velden zijn als volgt.

  • Beschrijving: Een korte beschrijving
  • Documentatie: Het adres van het document
  • Vereist: andere units waarop de huidige unit afhankelijk is, en als ze niet draaien, start de huidige unit niet
  • Wants: Andere eenheden die werken met de huidige eenheid, als ze niet draaien, zal de huidige eenheid niet mislukken om te starten
  • BindsTo: Vergelijkbaar met Vereisten, specificeert het een Eenheid die ervoor zorgt dat de huidige Unit stopt met draaien als deze uitgaat
  • Vooraf: Als de in dit veld gespecificeerde Unit ook gestart moet worden, moet deze na de huidige Unit worden gestart
  • Na: Als de in dit veld gespecificeerde Unit ook gestart moet worden, moet deze worden gestart vóór de huidige Unit
  • Conflicten: De hier gespecificeerde eenheid kan niet tegelijk draaien met de huidige eenheid
  • Conditie... : De voorwaarden waaraan voldaan moet zijn om de huidige eenheid te laten werken, anders zal hij niet draaien
  • Beweren... : De voorwaarden waaraan voldaan moet zijn om de huidige unit te laten draaien, anders wordt de opstartfout gemeld

[Installeren] is meestal het laatste blok van het configuratiebestand dat bepaalt hoe je opstart en of je opstart. De belangrijkste velden zijn als volgt.

  • WantedBy: De waarde is één of meer Targets, en wanneer de huidige Unit actief is (ingeschakeld), wordt de symlink geplaatst in een submap onder de /etc/systemd/system-map met de Target-naam + .wants achtervoegsel
  • RequiredBy: De waarde is één of meer Targets, en wanneer de huidige Unit actief is, wordt de symlink geplaatst in een submap onder de /etc/systemd/system-directory met de naam Target + .required suffix
  • Alias: De alias die de huidige Unit kan gebruiken om te beginnen
  • Ook: Wanneer de huidige eenheid wordt geactiveerd, worden andere eenheden tegelijkertijd geactiveerd

Het [Service]-blok wordt gebruikt om de Service te configureren, en alleen eenheden van het Service-type hebben dit blok. De belangrijkste velden zijn als volgt.

  • Type: Definieert het gedrag van het proces bij het opstarten. Het heeft de volgende waarden.
  • Type=simpel: De standaardwaarde, voer het commando uit dat door ExecStart is gespecificeerd om het hoofdproces te starten
  • type=forking: Fork maakt een kindproces aan vanuit het ouderproces, dat direct na het aanmaken wordt afgesloten
  • Type=oneshot: Een eenmalig proces, Systemd wacht tot de huidige service is afgesloten voordat het verder wordt uitgevoerd
  • Type=dbus: De huidige dienst wordt gestart via D-Bus
  • type=melden: Wanneer de huidige service wordt gestart, wordt Systemd geïnformeerd en gaat de uitvoering verder
  • type=idle: De huidige service draait alleen als andere taken worden uitgevoerd
  • ExecStart: Het commando om de huidige service te starten
  • ExecStartPre: Het commando dat wordt uitgevoerd voordat de huidige service wordt gestart
  • ExecStartPost: Het commando dat wordt uitgevoerd na het starten van de huidige dienst
  • ExecReload: Het commando dat wordt uitgevoerd wanneer de huidige service wordt herstart.
  • ExecStop: Het commando dat wordt uitgevoerd wanneer de huidige service wordt gestopt
  • ExecStopPost: Stop het commando dat wordt uitgevoerd wanneer het wordt uitgevoerd
  • RestartSec: Het aantal seconden tussen automatische service start de huidige service opnieuw op
  • Herstarten: Definieert de omstandigheden waaronder Systemd de huidige service automatisch opnieuw start, met mogelijke waarden zoals always, on-success, on-failure, on-abnormal, on-abort, on-watchdog
  • TimeoutSec: Definieert het aantal seconden dat Systemd wacht voordat de huidige dienst wordt stopgezet
  • Omgeving: Specificeer de omgevingsvariabele

Systemctl-beheertool

Programmabeheer in CentOS wordt in feite gedaan door het tool systemctl.

Startupservice:

SystemCTL Start Name.Service

Stop de dienst:

SystemCTL stop name.service

Service herstarten:

systemctl restart name.service

Bekijk status:

SystemCTL Status Name.service

Voorwaardelijke herstart:

Als de dienst eerder is gestart, wordt deze opnieuw gestart, en als de dienst niet wordt gestart, wordt deze niet uitgevoerd

systemctl try-restart name.service

Herladen of herstarten:

Herlaad eerst, en als het herladen niet lukt, start dan opnieuw op

systemctl reload-or-restart name.service

Herladen of voorwaardelijke herstart:

systemctl reload-or-try-restart name.service

Bepaalt of de gebruiker de service kan instellen om de toestand te starten

systemctl unmask name.service

systemctl mask name.service is verboden

Bekijk de huidige activatiestatus van de dienst:

De status return waarde van het service has started-commando is 0 De status return waarde van het commando dat niet is gestart is niet 0

SystemCTL is-actief name.service

Bekijk alle diensten die zijn geactiveerd:

-t Specificeert het type getoonde eenheid.

--alles toont een meer gedetailleerde lijst met informatie.

-een equivalent --allen

SystemCTL lijst-eenheden

SystemCTL lijst-eenheden -t dienst

SystemCTL lijst-eenheden -t dienst -a

Bekijk alle diensten:

SystemCTL lijst-eenheden -A

Bekijk alle servicestatussen:

SystemCTL list-unit-files

-a 、--allen: Bekijk de status van alle diensten

-t 、--type: Specificeert het type eenheid dat bekeken moet worden

geladen: Het configuratiebestand is geladen, in het geheugen geladen

active(running): Runs die één of meerdere keren continu worden verwerkt

active(exited): De eenmalige configuratie is succesvol voltooid

actief(wachtend): Rennen, wachten op een gebeurtenis

inactive:不运行

enabled:开机启动

disabled:开机不启动

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

Gebruikt om te vermelden op welke operationele niveaus de dienst is ingeschakeld en uitgeschakeld

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

SystemCTL lijst-eenheidsbestanden --type doel --alle

Om de dienst niet te starten:

SystemCTL Schakel de servicenaameenheid uit

Controleer of de dienst is opgestart en opgestart:

SystemCTL is-enabled name.service

Kijk naar serviceafhankelijkheden:

SystemCTL list-dependencies name.service
Systemctl list-depebdencies

Zware belastingdienst:

SystemCTL daemon-reload

Stop het proces:

SystemCTL Kill-procesnaam

Weg:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.





Vorig:Linux test de LDAP-connectiviteit met behulp van het Curl-commando
Volgend:VSFTP-opsporingstoestemmingsprobleem
 Huisbaas| Geplaatst op 11-12-2021 17:35:26 |
[Unit]Een blok is meestal het eerste blok van een configuratiebestand dat de metadata van een eenheid definieert en hoe deze zich verhoudt tot andere eenheden. De belangrijkste velden zijn als volgt.

Beschrijving: Een korte beschrijving
Documentatie: Het adres van het document
Vereist: andere units waarop de huidige unit afhankelijk is, en als ze niet draaien, start de huidige unit niet
Wants: Andere eenheden die werken met de huidige eenheid, als ze niet draaien, zal de huidige eenheid niet mislukken om te starten
BindsTo: Vergelijkbaar met Vereisten, specificeert het een Eenheid die ervoor zorgt dat de huidige Unit stopt met draaien als deze uitgaat
Vooraf: Als de in dit veld gespecificeerde Unit ook gestart moet worden, moet deze na de huidige Unit worden gestart
Na: Als de in dit veld gespecificeerde Unit ook gestart moet worden, moet deze worden gestart vóór de huidige Unit
Conflicten: De hier gespecificeerde eenheid kan niet tegelijk draaien met de huidige eenheid
Conditie... : De voorwaarden waaraan voldaan moet zijn om de huidige eenheid te laten werken, anders zal hij niet draaien
Beweren... : De voorwaarden waaraan voldaan moet zijn om de huidige unit te laten draaien, anders wordt de opstartfout gemeld
[Installeren]Het is meestal het laatste blok van het configuratiebestand dat bepaalt hoe je moet opstarten en of je moet opstarten. De belangrijkste velden zijn als volgt.

WantedBy: De waarde is één of meer Targets, en wanneer de huidige Unit actief is (ingeschakeld), wordt de symlink geplaatst in een submap onder de /etc/systemd/system-map met de Target-naam + .wants achtervoegsel
RequiredBy: De waarde is één of meer Targets, en wanneer de huidige Unit actief is, wordt de symlink geplaatst in een submap onder de /etc/systemd/system-directory met de naam Target + .required suffix
Alias: De alias die de huidige Unit kan gebruiken om te beginnen
Ook: Wanneer de huidige eenheid wordt geactiveerd, worden andere eenheden tegelijkertijd geactiveerd
[Service]Blokken worden gebruikt om services te configureren, en alleen eenheden van het type Service hebben dit blok. De belangrijkste velden zijn als volgt.

Type: Definieert het gedrag van het proces bij het opstarten. Het heeft de volgende waarden.
Type=simpel: De standaardwaarde, voer het commando uit dat door ExecStart is gespecificeerd om het hoofdproces te starten
type=forking: Fork maakt een kindproces aan vanuit het ouderproces, dat direct na het aanmaken wordt afgesloten
Type=oneshot: Een eenmalig proces, Systemd wacht tot de huidige service is afgesloten voordat het verder wordt uitgevoerd
Type=dbus: De huidige dienst wordt gestart via D-Bus
type=melden: Wanneer de huidige service wordt gestart, wordt Systemd geïnformeerd en gaat de uitvoering verder
type=idle: De huidige service draait alleen als andere taken worden uitgevoerd
ExecStart: Het commando om de huidige service te starten
ExecStartPre: Het commando dat wordt uitgevoerd voordat de huidige service wordt gestart
ExecStartPost: Het commando dat wordt uitgevoerd na het starten van de huidige dienst
ExecReload: Het commando dat wordt uitgevoerd wanneer de huidige service wordt herstart.
ExecStop: Het commando dat wordt uitgevoerd wanneer de huidige service wordt gestopt
ExecStopPost: Stop het commando dat wordt uitgevoerd wanneer het wordt uitgevoerd
RestartSec: Het aantal seconden tussen automatische service start de huidige service opnieuw op
Herstarten: Definieert de omstandigheden waaronder Systemd de huidige service automatisch opnieuw start, met mogelijke waarden zoals always, on-success, on-failure, on-abnormal, on-abort, on-watchdog
TimeoutSec: Definieert het aantal seconden dat Systemd wacht voordat de huidige dienst wordt stopgezet
Omgeving: Specificeer de omgevingsvariabele


 Huisbaas| Geplaatst op 11-12-2021 17:37:33 |
Type=forking
SystemD denkt dat de service succesvol start wanneer het serviceproces wordt geforkt en het ouderproces wordt afgesloten. Voor gewone daemons, tenzij je zeker weet dat deze opstartmethode niet aan je behoeften voldoet, kun je met dit type beginnen. Bij dit opstarttype moet PIDFile= ook worden gespecificeerd zodat systemd het hoofdproces van de dienst kan volgen

 Huisbaas| Geplaatst op 15-12-2021 16:55:14 |
EnvironmentFile-commando

EnvironmentFile lijkt op de Environment-richtlijn, maar leest omgevingsvariabelen uit een tekstbestand. Het tekstbestand moet variabeletoewijzingen bevatten, gescheiden door regelafbrekingen

voorbeeld

Je kunt dit omgevingsbestand nemen en de variabelen als volgt gebruiken:



 Huisbaas| Geplaatst op 04-01-2022 15:56:55 |
 Huisbaas| Geplaatst op 05-01-2022 09:48:21 |
Docker standaard servicebestandspad /usr/lib/systemd/system/docker.service

 Huisbaas| Geplaatst op 23-01-2022 22:57:56 |
Bekijk alle servicestatussen



Vraag of een dienst ingeschakeld is, met NFS als voorbeeld:

 Huisbaas| Geplaatst op 25-02-2025 17:01:08 |
Start bulkdiensten die beginnen met ABC

 Huisbaas| Geplaatst op 11-04-2025 15:57:14 |
DefaultTimeoutStartSec= en DefaultTimeoutStopSec= standaard 90 seconden in Systeemmanager en 90 seconden in Gebruikersbeheer.

De hyperlink-login is zichtbaar.

Bekijk de configuratie van de gespecificeerde dienst met het volgende commando:


Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com