Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 10964|Risposta: 8

[Linux] Linux systemd service manager spiegato in dettaglio

[Copiato link]
Pubblicato su 28/11/2021 10:02:32 | | | |
systemd è un insieme di mattoni fondamentali per i sistemi Linux. Fornisce un gestore di sistema e servizi che esegue e avvia il resto del sistema come PID 1.

systemd offre capacità di parallelizzazione aggressive, utilizza socket e attivazione D-Bus per avviare i servizi, fornisce avvio on-demand dei daemon, utilizza gruppi di controllo Linux per tracciare i processi, mantiene mount e punti auto-mount, e implementa una logica di controllo di servizio ben progettata basata sulla dipendenza delle transazioni. systemd supporta gli script init SysV e LSB e può sostituire sysvinit.

Altre sezioni includono daemon di log, utility per controllare configurazioni di base di sistema come nomi host, date, località, mantenimento di un elenco degli utenti logjati e container e macchine virtuali in esecuzione, account di sistema, directory di runtime e impostazioni, oltre alla gestione delle configurazioni dei demoni per reti semplici, sincronizzazione temporale di rete, inoltro log e risoluzione dei nomi.

Il file di configurazione systemd si trova nelle seguenti tre cartelle:         

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

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

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

Linux esamina l'output log del servizio Systemd
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Aggiungi un nodo Linux e registralo come servizio
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 installa l'esportatore di nodi
https://www.itsvse.com/thread-9969-1-1.html

Profilo dell'unità

Un file di unità in systemd è un file che codifica informazioni sulle varie unità che systemd può gestire, inclusi servizi, socket, dispositivi e così via. Questa guida si concentra sui servizi, nel qual caso il file unità con cui stiamo lavorando è il file .service. Il file di configurazione del dispositivo varnish.service contiene informazioni su come systemd dovrebbe eseguire, monitorare e gestire il daemon della vernice.

Il blocco [Unità] è solitamente il primo blocco del file di configurazione ed è utilizzato per definire i metadati dell'Unità e come essa si relaziona ad altre Unità. I suoi principali campi sono i seguenti.

  • Descrizione: Una breve descrizione
  • Documentazione: L'indirizzo del documento
  • Richiede: Altre unità da cui dipende l'unità corrente e, se non sono in funzione, l'unità corrente non si avvierà
  • Desideri: Altre Unità che lavorano con l'Unità attuale, se non sono in funzione, l'Unità attuale non fallirà l'avvio
  • BindsTo: Simile a Requires, specifica un'unità che fa smettere l'Unità corrente se esce
  • Prima: Se anche l'Unità specificata in questo campo deve essere avviata, deve essere avviata dopo l'Unità corrente
  • Dopo: Se anche l'Unità specificata in questo campo deve essere avviata, deve essere avviata prima dell'Unità corrente
  • Conflitti: L'unità qui specificata non può funzionare contemporaneamente all'unità corrente
  • Condizione... : Le condizioni che devono essere soddisfatte affinché l'unità corrente possa funzionare, altrimenti non funzionerà
  • Asserire... : Le condizioni che devono essere soddisfatte affinché l'unità corrente possa funzionare, altrimenti verrà segnalato il guasto all'avvio

[Install] è solitamente l'ultimo blocco del file di configurazione che definisce come avviare e se avviare. I suoi principali campi sono i seguenti.

  • WantedBy: Il suo valore è uno o più Target, e quando l'Unità corrente è attiva (abilita), il symlink viene inserito in una sottodirectory sotto la directory /etc/systemd/system con il suffisso Target name + .wants
  • RequiredBy: Il suo valore è uno o più Target, e quando l'Unità corrente è attiva, il symlink verrà inserito in una sottodirectory sotto la directory /etc/systemd/system con il nome Target + .required suffisso
  • Alias: L'alias che l'Unità attuale può usare per iniziare
  • Inoltre: quando l'unità corrente viene attivata, altre unità verranno attivate contemporaneamente

Il blocco [Service] viene utilizzato per configurare il Service, e solo le unità del tipo Service possiedono questo blocco. I suoi principali campi sono i seguenti.

  • Tipo: Definisce il comportamento del processo all'avvio. Ha i seguenti valori.
  • Type=simple: Il valore predefinito, eseguire il comando specificato da ExecStart per avviare il processo principale
  • type=forking: Il fork crea un processo figlio dal processo genitore, che uscirà immediatamente dopo la creazione
  • Type=oneshot: Un processo una tantum, Systemd aspetterà che il servizio corrente esca prima di continuare l'esecuzione
  • Tipo=dbus: Il servizio attuale inizia tramite D-Bus
  • type=notify: Quando il servizio corrente viene avviato, Systemd verrà notificato e continuerà l'esecuzione
  • type=idle: Il servizio corrente verrà eseguito solo se vengono eseguiti altri task
  • ExecStart: Il comando per avviare il servizio corrente
  • ExecStartPre: Il comando eseguito prima di avviare il servizio corrente
  • ExecStartPost: Il comando eseguito dopo l'avvio del servizio corrente
  • ExecReload: Il comando che viene eseguito quando il servizio corrente viene riavviato
  • ExecStop: Il comando eseguito quando il servizio corrente viene interrotto
  • ExecStopPost: Fermare il comando eseguito quando viene eseguito
  • RestartSec: Il numero di secondi tra un servizio automatico e l'altro riavvia il servizio corrente
  • Restart: Definisce le circostanze in cui Systemd riavvierà automaticamente il servizio corrente, con valori possibili come sempre, on-successo, on-failure, on-anormal, on-abort, on-watchdog
  • TimeoutSec: Definisce il numero di secondi che Systemd aspetta prima di interrompere il servizio corrente
  • Ambiente: Specificare la variabile ambiente

Strumento di gestione Systemctl

La gestione dei programmi in CentOS è fondamentalmente svolta dallo strumento systemctl.

Servizio Startup:

systemctl start name.service

Sospensione del servizio:

systemctl nome fermata.service

Riavvio del servizio:

systemctl restart name.service

Visualizza stato:

systemctl status name.service

Riavvio condizionale:

Se il servizio è stato avviato prima, verrà riavviato, e se il servizio non viene avviato, non sarà operato

systemctl try-restart name.service

Ricarica o riavvio:

Ricarica prima e, se il ricaricamento non va bene, riavvia

systemctl reload-or-restart name.service

Ricarica o riavvio condizionale:

systemctl reload-or-try-restart name.service

Stabilisce se il servizio può essere impostato dall'utente per avviare lo stato

systemctl unmask name.service

È vietato il servizio maschera SystemCTL

Visualizza lo stato attuale di attivazione del servizio:

Il valore di ritorno di stato del comando Service has started è 0 Il valore di ritorno di stato del comando che non è stato avviato è non-0

systemctl is-active name.service

Visualizza tutti i servizi attivati:

-t Specifica il tipo di unità visualizzata.

--tutte mostrano una lista più dettagliata di informazioni.

-un equivalente --tutti

SystemCTL Unità di lista

Servizio SystemCTL List-Units -T

SystemCTL List-Units -T servizio -A

Vedi tutti i servizi:

SystemCTL List-Units -a

Visualizza tutti gli stati del servizio:

SystemCTL list-unit-file

-a 、--all : Visualizza lo stato di tutti i servizi

-t 、--tipo: Specifica il tipo di unità da osservare

caricato: Il file di configurazione è stato caricato, caricato in memoria

attivo (running): Run che vengono elaborati continuamente una o più volte

attivo(exited): La configurazione una tantum volta viene completata con successo

attivo(in attesa): Correndo, aspettando un evento

inactive:不运行

enabled:开机启动

disabled:开机不启动

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

Utilizzato per indicare a quali livelli operativi il servizio è abilitato e disabilitato

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

systemctl list-unit-file --type target --all

Per impostare il servizio in modo che non si avvii:

SystemCTL Disabilita Unità Nome del Servizio

Controlla se il servizio è stato avviato e avviato:

SystemCTL is-abilitato name.service

Guarda le dipendenze dei servizi:

systemctl list-dependencies name.service
SystemCTL List-depebdencies

Servizio di carico pesante:

systemctl daemon-reload

Uccidi il processo:

Nome del processo di eliminazione di SystemCTL

Risorse:

Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.





Precedente:Linux testa la connettività LDAP usando il comando Curl
Prossimo:Problema con i permessi di upload del file VSFTP
 Padrone di casa| Pubblicato su 11/12/2021 17:35:26 |
[Unità]Un blocco è solitamente il primo blocco di un file di configurazione che definisce i metadati di un'Unità e come essi si relazionano ad altre Unità. I suoi principali campi sono i seguenti.

Descrizione: Una breve descrizione
Documentazione: L'indirizzo del documento
Richiede: Altre unità da cui dipende l'unità corrente e, se non sono in funzione, l'unità corrente non si avvierà
Desideri: Altre Unità che lavorano con l'Unità attuale, se non sono in funzione, l'Unità attuale non fallirà l'avvio
BindsTo: Simile a Requires, specifica un'unità che fa smettere l'Unità corrente se esce
Prima: Se anche l'Unità specificata in questo campo deve essere avviata, deve essere avviata dopo l'Unità corrente
Dopo: Se anche l'Unità specificata in questo campo deve essere avviata, deve essere avviata prima dell'Unità corrente
Conflitti: L'unità qui specificata non può funzionare contemporaneamente all'unità corrente
Condizione... : Le condizioni che devono essere soddisfatte affinché l'unità corrente possa funzionare, altrimenti non funzionerà
Asserire... : Le condizioni che devono essere soddisfatte affinché l'unità corrente possa funzionare, altrimenti verrà segnalato il guasto all'avvio
[Installa]Di solito è l'ultimo blocco del file di configurazione che definisce come avviare e se avviare. I suoi principali campi sono i seguenti.

WantedBy: Il suo valore è uno o più Target, e quando l'Unità corrente è attiva (abilita), il symlink viene inserito in una sottodirectory sotto la directory /etc/systemd/system con il suffisso Target name + .wants
RequiredBy: Il suo valore è uno o più Target, e quando l'Unità corrente è attiva, il symlink verrà inserito in una sottodirectory sotto la directory /etc/systemd/system con il nome Target + .required suffisso
Alias: L'alias che l'Unità attuale può usare per iniziare
Inoltre: quando l'unità corrente viene attivata, altre unità verranno attivate contemporaneamente
[Servizio]I blocchi sono usati per configurare i servizi, e solo le unità di tipo Service possiedono questo blocco. I suoi principali campi sono i seguenti.

Tipo: Definisce il comportamento del processo all'avvio. Ha i seguenti valori.
Type=simple: Il valore predefinito, eseguire il comando specificato da ExecStart per avviare il processo principale
type=forking: Il fork crea un processo figlio dal processo genitore, che uscirà immediatamente dopo la creazione
Type=oneshot: Un processo una tantum, Systemd aspetterà che il servizio corrente esca prima di continuare l'esecuzione
Tipo=dbus: Il servizio attuale inizia tramite D-Bus
type=notify: Quando il servizio corrente viene avviato, Systemd verrà notificato e continuerà l'esecuzione
type=idle: Il servizio corrente verrà eseguito solo se vengono eseguiti altri task
ExecStart: Il comando per avviare il servizio corrente
ExecStartPre: Il comando eseguito prima di avviare il servizio corrente
ExecStartPost: Il comando eseguito dopo l'avvio del servizio corrente
ExecReload: Il comando che viene eseguito quando il servizio corrente viene riavviato
ExecStop: Il comando eseguito quando il servizio corrente viene interrotto
ExecStopPost: Fermare il comando eseguito quando viene eseguito
RestartSec: Il numero di secondi tra un servizio automatico e l'altro riavvia il servizio corrente
Restart: Definisce le circostanze in cui Systemd riavvierà automaticamente il servizio corrente, con valori possibili come sempre, on-successo, on-failure, on-anormal, on-abort, on-watchdog
TimeoutSec: Definisce il numero di secondi che Systemd aspetta prima di interrompere il servizio corrente
Ambiente: Specificare la variabile ambiente


 Padrone di casa| Pubblicato su 11/12/2021 17:37:33 |
Type=forking
SystemD pensa che il servizio si avvii con successo quando il processo di servizio viene forkato e il processo genitore esce. Per i demoni normali, a meno che tu non sia sicuro che questo metodo di avvio non soddisfi le tue esigenze, puoi iniziare con questo tipo. Con questo tipo di avvio, dovrebbe essere specificato anche PIDFile= affinché systemd possa tracciare il processo principale del servizio

 Padrone di casa| Pubblicato su 15/12/2021 16:55:14 |
Comando EnvironmentFile

EnvironmentFile è simile alla direttiva Environment, ma legge le variabili di ambiente da un file di testo. Il file di testo dovrebbe contenere assegnazioni di variabili separate da interruzioni di riga

esempio

Puoi prendere questo file di ambiente e usarne le variabili come segue:



 Padrone di casa| Pubblicato su 04/01/2022 15:56:55 |
 Padrone di casa| Pubblicato su 05/01/2022 09:48:21 |
Percorso file di servizio predefinito Docker /usr/lib/systemd/system/docker.service

 Padrone di casa| Pubblicato su 23/01/2022 22:57:56 |
Visualizza tutti gli stati del servizio



Interroga se un servizio è acceso, usando NFS come esempio:

 Padrone di casa| Pubblicato su 25/02/2025 17:01:08 |
Servizi di avvio in blocco che iniziano con ABC

 Padrone di casa| Pubblicato su 11/04/2025 15:57:14 |
DefaultTimeoutStartSec= e DefaultTimeoutStopSec= predefiniti a 90 secondi nel System Manager e 90 secondi in User Manager.

Il login del link ipertestuale è visibile.

Visualizza la configurazione del servizio specificato con il seguente comando:


Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com