Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 10964|Svar: 8

[Linux] Linux systemd service manager förklarad i detalj

[Kopiera länk]
Publicerad på 2021-11-28 10:02:32 | | | |
systemd är en uppsättning grundläggande byggstenar för Linux-system. Den tillhandahåller ett system och en tjänstehanterare som kör och startar resten av systemet som PID 1.

systemd erbjuder aggressiva parallelliseringsmöjligheter, använder sockets och D-Bus-aktivering för att starta tjänster, erbjuder on-demand-start av daemoner, använder Linux-kontrollgrupper för att spåra processer, underhåller mounts och automount-punkter samt implementerar väl utformad transaktionsbaserad servicekontrolllogik. systemd stöder SysV- och LSB-init-skript och kan ersätta sysvinit.

Andra avsnitt inkluderar loggdemoner, verktyg för att styra grundläggande systemkonfigurationer såsom värdnamn, datum, platser, underhåll av en lista över inloggade användare och körande containrar och virtuella maskiner, systemkonton, runtime-kataloger och inställningar, samt hantering av daemonkonfigurationer för enkla nätverk, nätverkstidssynkronisering, loggvidarebefordran och namnupplösning.

Systemd-konfigurationsfilen finns i följande tre mappar:         

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

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

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

Linux tittar på loggutdata från Systemd-tjänsten
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Lägg till en Linux-nod och registrera den som en tjänst
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 installerar Node-exportören
https://www.itsvse.com/thread-9969-1-1.html

Enhetsprofil

En enhetsfil i systemd är en fil som kodar information om de olika enheter som systemd kan hantera, inklusive tjänster, sockets, enheter och så vidare. Denna guide fokuserar på tjänster, och i så fall är enhetsfilen vi arbetar med .service-filen. Konfigurationsfilen för varnish.service innehåller information om hur systemd ska exekvera, övervaka och hantera varnish-daemonen.

[Enhets]-blocket är vanligtvis det första blocket i konfigurationsfilen och används för att definiera enhetens metadata och hur den relaterar till andra enheter. Dess huvudområden är följande.

  • Beskrivning: En kort beskrivning
  • Dokumentation: Dokumentets adress
  • Kräver: Andra enheter som den nuvarande enheten är beroende av, och om de inte är igång kommer den nuvarande enheten att inte starta
  • Wants: Andra enheter som fungerar med den nuvarande enheten, om de inte är igång kommer den nuvarande enheten inte att starta
  • BindsTo: Liknande Requires, specificerar den en enhet som gör att den nuvarande enheten slutar fungera om den avslutar
  • Före: Om enheten som anges i detta fält också ska startas, måste den startas efter den aktuella enheten
  • Efter: Om enheten som anges i detta fält också ska startas måste den startas före den aktuella enheten
  • Konflikter: Den enhet som anges här kan inte köras samtidigt som den nuvarande enheten
  • Tillstånd... : Villkoren som måste uppfyllas för att den nuvarande enheten ska kunna fungera, annars kommer den inte att fungera
  • Hävda... : Villkoren som måste uppfyllas för att den nuvarande enheten ska kunna fungera, annars rapporteras startfel

[Installera] är vanligtvis det sista blocket i konfigurationsfilen som definierar hur man ska starta och om man ska starta upp. Dess huvudområden är följande.

  • WantedBy: Dess värde är en eller flera Targets, och när den aktuella enheten är aktiv (aktiverad) placeras symlänken i en underkatalog under katalogen /etc/systemd/system med Target-namnet + .wants suffixet
  • RequiredBy: Dess värde är en eller flera Targets, och när den aktuella enheten är aktiv placeras symlänken i en underkatalog under katalogen /etc/systemd/system med Target-namnet + .required suffix
  • Alias: Alias som den nuvarande enheten kan använda för att starta
  • Dessutom: När den nuvarande enheten aktiveras aktiveras andra enheter samtidigt

[Service]-blocket används för att konfigurera Service, och endast enheter av Service-typen har detta block. Dess huvudområden är följande.

  • Typ: Definierar processens beteende vid uppstart. Den har följande värden.
  • Type=simple: Standardvärdet, kör kommandot specificerat av ExecStart för att starta huvudprocessen
  • type=forking: Fork skapar en barnprocess från förälderprocessen, som avslutas omedelbart efter skapandet
  • Type=oneshot: En engångsprocess, Systemd väntar tills den aktuella tjänsten avslutas innan den fortsätter att köras
  • Type=dbus: Den nuvarande tjänsten startas via D-Bus
  • type=notify: När den aktuella tjänsten startas kommer Systemd att meddelas och körningen fortsätter
  • type=idle: Den aktuella tjänsten körs endast om andra uppgifter körs
  • ExecStart: Kommandot för att starta den aktuella tjänsten
  • ExecStartPre: Kommandot som utförs innan den nuvarande tjänsten startas
  • ExecStartPost: Kommandot som utförs efter att den aktuella tjänsten startats
  • ExecReload: Kommandot som körs när den aktuella tjänsten startas om
  • ExecStop: Kommandot som utförs när den aktuella tjänsten avbryts
  • ExecStopPost: Stoppa kommandot som utförs när det levereras
  • RestartSec: Antalet sekunder mellan automatisk service startar om den aktuella tjänsten
  • Omstart: Definierar omständigheterna under vilka Systemd automatiskt startar om den nuvarande tjänsten, med möjliga värden som alltid, vid framgång, vid misslyckande, på-onormal, vid avbrytning, på-vakthund
  • TimeoutSec: Definierar antalet sekunder Systemd väntar innan den nuvarande tjänsten stoppas
  • Miljö: Specificera miljövariabeln

Systemctl-hanteringsverktyg

Programhantering i CentOS görs i princip av verktyget systemctl.

Startservice:

systemctl start name.service

Avsluta tjänsten:

systemCTL stop name.service

Starta om tjänsten:

systemctl restart name.service

Visa status:

systemCTL Status Name.Service

Villkorlig omstart:

Om tjänsten startades tidigare startas den om, och om tjänsten inte startas kommer den inte att drivas

systemctl try-restart name.service

Ladda om eller starta om:

Ladda om först, och om omladdningen misslyckas, starta om

systemctl reload-or-restart name.service

Ladda om eller villkorlig omstart:

systemctl reload-or-try-restart name.service

Anger om tjänsten kan ställas in av användaren för att starta tillståndet

SystemCTL Unmask name.service

systemctl mask name.service är förbjuden

Visa tjänstens aktuella aktiveringsstatus:

Statusreturvärdet för kommandot tjänsten har startat är 0. Statusreturvärdet för kommandot som inte har startats är icke-0

SystemCTL is-aktiv namn.tjänst

Se alla tjänster som har aktiverats:

-t Specificerar vilken typ av enhet som visas.

--alla visar en mer detaljerad informationslista.

-en ekvivalent --alla

SystemCTL listenheter

SystemCTL list-enheter -t tjänst

SystemCTL list-enheter -t tjänst -a

Se alla tjänster:

SystemCTL list-enheter -a

Visa alla servicestatusar:

SystemCTL list-unit-files

-a 、--alla: Visa statusen för alla tjänster

-t 、--typ: Specificerar vilken typ av enhet som ska betraktas

laddad: Konfigurationsfilen har laddats, laddats in i minnet

active(running): Körningar som kontinuerligt bearbetas en eller flera gånger

active(exited): Engångskonfigurationen slutförs framgångsrikt

aktiv (väntar): Springer, väntar på en händelse

inactive:不运行

enabled:开机启动

disabled:开机不启动

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

Används för att lista på vilka driftsnivåer tjänsten är aktiverad och inaktiverad

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

SystemCTL list-enhetsfiler --typ mål --alla

För att ställa in tjänsten så att den inte startar:

SystemCTL Inaktivera tjänstenamnsenhet

Kontrollera om tjänsten startar och startar:

SystemCTL IS-enabled name.service

Titta på tjänsteberoende:

Systemctl list-dependencies name.service
SystemCTL list-depebdencies

Tung lasttjänst:

systemCTL Daemon-Reload

Avsluta processen:

SystemCTL Kill Processnamn

Resurser:

Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.





Föregående:Linux testar LDAP-anslutning med kommandot Curl
Nästa:vsftp-behörighetsproblem för uppladdningsfiler
 Hyresvärd| Publicerad på 2021-12-11 17:35:26 |
[Enhet]Ett block är vanligtvis det första blocket i en konfigurationsfil som definierar metadata för en enhet och hur den relaterar till andra enheter. Dess huvudområden är följande.

Beskrivning: En kort beskrivning
Dokumentation: Dokumentets adress
Kräver: Andra enheter som den nuvarande enheten är beroende av, och om de inte är igång kommer den nuvarande enheten att inte starta
Wants: Andra enheter som fungerar med den nuvarande enheten, om de inte är igång kommer den nuvarande enheten inte att starta
BindsTo: Liknande Requires, specificerar den en enhet som gör att den nuvarande enheten slutar fungera om den avslutar
Före: Om enheten som anges i detta fält också ska startas, måste den startas efter den aktuella enheten
Efter: Om enheten som anges i detta fält också ska startas måste den startas före den aktuella enheten
Konflikter: Den enhet som anges här kan inte köras samtidigt som den nuvarande enheten
Tillstånd... : Villkoren som måste uppfyllas för att den nuvarande enheten ska kunna fungera, annars kommer den inte att fungera
Hävda... : Villkoren som måste uppfyllas för att den nuvarande enheten ska kunna fungera, annars rapporteras startfel
[Installera]Det är vanligtvis det sista blocket i konfigurationsfilen som definierar hur man ska starta och om man ska starta upp. Dess huvudområden är följande.

WantedBy: Dess värde är en eller flera Targets, och när den aktuella enheten är aktiv (aktiverad) placeras symlänken i en underkatalog under katalogen /etc/systemd/system med Target-namnet + .wants suffixet
RequiredBy: Dess värde är en eller flera Targets, och när den aktuella enheten är aktiv placeras symlänken i en underkatalog under katalogen /etc/systemd/system med Target-namnet + .required suffix
Alias: Alias som den nuvarande enheten kan använda för att starta
Dessutom: När den nuvarande enheten aktiveras aktiveras andra enheter samtidigt
[Tjänst]Block används för att konfigurera tjänster, och endast enheter av typen Service har detta block. Dess huvudområden är följande.

Typ: Definierar processens beteende vid uppstart. Den har följande värden.
Type=simple: Standardvärdet, kör kommandot specificerat av ExecStart för att starta huvudprocessen
type=forking: Fork skapar en barnprocess från förälderprocessen, som avslutas omedelbart efter skapandet
Type=oneshot: En engångsprocess, Systemd väntar tills den aktuella tjänsten avslutas innan den fortsätter att köras
Type=dbus: Den nuvarande tjänsten startas via D-Bus
type=notify: När den aktuella tjänsten startas kommer Systemd att meddelas och körningen fortsätter
type=idle: Den aktuella tjänsten körs endast om andra uppgifter körs
ExecStart: Kommandot för att starta den aktuella tjänsten
ExecStartPre: Kommandot som utförs innan den nuvarande tjänsten startas
ExecStartPost: Kommandot som utförs efter att den aktuella tjänsten startats
ExecReload: Kommandot som körs när den aktuella tjänsten startas om
ExecStop: Kommandot som utförs när den aktuella tjänsten avbryts
ExecStopPost: Stoppa kommandot som utförs när det levereras
RestartSec: Antalet sekunder mellan automatisk service startar om den aktuella tjänsten
Omstart: Definierar omständigheterna under vilka Systemd automatiskt startar om den nuvarande tjänsten, med möjliga värden som alltid, vid framgång, vid misslyckande, på-onormal, vid avbrytning, på-vakthund
TimeoutSec: Definierar antalet sekunder Systemd väntar innan den nuvarande tjänsten stoppas
Miljö: Specificera miljövariabeln


 Hyresvärd| Publicerad på 2021-12-11 17:37:33 |
Typ=förgrening
SystemD tror att tjänsten startar framgångsrikt när serviceprocessen förgrenas och moderprocessen avslutas. För vanliga demoner, om du inte är säker på att denna startmetod inte uppfyller dina behov, kan du börja med denna typ. Med denna starttyp bör PIDFile= också specificeras så att systemd kan spåra tjänstens huvudprocess

 Hyresvärd| Publicerad på 2021-12-15 16:55:14 |
EnvironmentFile-kommandot

EnvironmentFile liknar Environment-direktivet, men läser miljövariabler från en textfil. Textfilen bör innehålla variabeltilldelningar separerade med radbrytningar

exempel

Du kan ta denna miljöfil och använda dess variabler enligt följande:



 Hyresvärd| Publicerad på 2022-01-04 15:56:55 |
 Hyresvärd| Publicerad på 2022-01-05 09:48:21 |
docker standard tjänstefilsökväg /usr/lib/systemd/system/docker.service

 Hyresvärd| Publicerad på 2022-01-23 22:57:56 |
Visa alla servicestatusar



Fråga om en tjänst är påslagen, med NFS som exempel:

 Hyresvärd| Publicerad på 2025-02-25 17:01:08 |
Starta tjänster i bulk som startar med ABC

 Hyresvärd| Publicerad på 2025-04-11 15:57:14 |
DefaultTimeoutStartSec= och DefaultTimeoutStopSec= standard till 90 sekunder i Systemhanteraren och 90 sekunder i Användarhanteraren.

Inloggningen med hyperlänken är synlig.

Visa konfigurationen av den specificerade tjänsten med följande kommando:


Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com