Come eseguire lo script su avvio nella top 10 di Debian

Come eseguire lo script su avvio nella top 10 di Debian
Questo tutorial spiega come eseguire script o servizi all'avvio o all'avvio in Debian 11 e distribuzioni Linux basate.

Per aggiungere correttamente servizi e script all'avvio su Debian 11, è necessario creare unità SystemD. Questo tutorial si concentra sulle unità SystemD, se stai cercando istruzioni veloci per eseguire uno script all'avvio, saltare direttamente alla creazione di un'unità Systemd per eseguire uno script nella sezione di avvio.

Cos'è un'unità di sistema?

Le unità SystemD sono file di configurazione contenenti informazioni per la corretta gestione o l'esecuzione di alcuni file di sistema. Le unità SystemD possono essere utilizzate per gestire servizi, prese, dispositivi, punti di montaggio, punti automobilistici, file di scambio o partizioni, un obiettivo di avvio, un percorso del file system guardato, timer controllati e supervisionati da SystemD, una fetta di gestione delle risorse o un gruppo di processi creati esternamente.

Le unità SystemD si trovano sotto la directory /etc/systemd/system. Qualsiasi script che si desidera eseguire all'avvio utilizzando le unità SystemD deve essere specificato in un file (unità) in questa directory.
Una vista rapida che utilizza il comando LS ci mostrerà le unità di sistema esistenti nel nostro sistema.

ls/etc/systemd/system

Uno dei file che non sono stati inclusi nello screenshot sopra è Tomcat.servizio il cui contenuto sembra la seguente immagine.

Nota: Le seguenti informazioni sono per farti familiarizzare con i file di configurazione dell'unità. Non preoccuparti, l'unità che creerai per eseguire il tuo script sarà più semplice.

Dove le direttive [unità]:

Descrizione: Questa direttiva consente di aggiungere una descrizione per un'unità, qui è possibile impostare il nome dell'unità per essere identificato.

Vuole: Qui, puoi specificare le dipendenze dell'unità. Nota ci sono diverse direttive per questo scopo simile. Ad esempio, la direttiva Richiede viene utilizzato per specificare dipendenze rigorose, senza le quali l'unità non può funzionare. Contrariamente a richiedere, i desideri vengono utilizzati per specificare le dipendenze senza le quali l'unità può continuare a funzionare.

Dopo: L'unità corrente inizierà dopo che l'unità specificata in questa direttiva.

[Servizio] Direttive della sezione:

Tipo: Nell'esempio precedente, la biforcazione indica che il servizio deve essere ucciso mantenendo i processi figlio che deve essere assegnato un PID.

Ambiente: Qui, è possibile specificare le variabili dell'ambiente unitario.

ExecStart: Questa direttiva consente di specificare il percorso e i comandi che si desidera eseguire.

Execstop: è possibile specificare il comando utilizzato per fermare l'unità.

SuccessExitStatus: Questa direttiva consente di specificare lo stato e i segnali di uscita.

Utente: è possibile specificare il proprietario dell'utente dell'unità.

Gruppo: è possibile specificare il proprietario del gruppo dell'unità.

Umask: puoi specificare la maschera utente.

RestartSec: Se l'unità si riavvia automaticamente, qui è possibile specificare il tempo di attendere per riprovare il riavvio del servizio.

Ricomincia: è possibile definire per il sistema quando l'unità deve essere riavviata. Le opzioni disponibili sono sempre, on-failure, on-abort, on-success, on-watchdog e on-abnormal.

La direttiva [installa] nell'esempio sopra è desiderata.

Ricercato: Questa direttiva consente di definire l'unità come dipendenza; è simile a Vuole direttiva, ma per specificare se l'unità corrente è considerata una dipendenza da un'altra unità.

Altre direttive comuni nella sezione [unità] che non sono state incluse nello screenshot precedente:

Richiede: In questa direttiva è possibile specificare le dipendenze per evitare guasti di avvio. Contrariamente al Vuole direttiva, se una dipendenza specificata con la direttiva richiede non è soddisfatta, l'unità non funzionerà.

Nella sezione [Servizio]:

Pidfile: La direttiva del biforcimento richiede la direttiva PIDFILE, che contiene il percorso del PID del file del processo figlio per SystemD per identificarlo.

StartlimitInterval: indica che l'unità ha 60 secondi per 10 tentativi di riavvio al fallimento.

Startlimitburst: Questa direttiva indica il limite dei tentativi, nell'esempio precedente, 10 tentativi in ​​60 secondi.

Per ulteriori informazioni sulle unità SystemD è possibile leggere:
https: // manpaages.Debian.org/jessie/systemd/systemd.unità.5.en.html.

Creazione di un'unità SystemD per eseguire uno script all'avvio su Debian 11

L'esecuzione di uno script all'avvio può essere più semplice e contenere meno configurazione di Tomcat.servizio file precedentemente utilizzato per mostrare il contenuto comune dell'unità.

Come detto in precedenza, i file (unità) contenenti le informazioni sugli script in esecuzione si trovano nella directory /etc/systemd/system. Per definire uno script da eseguire all'avvio, è necessario creare una nuova unità per questo script. Per creare un'unità sotto /etc/systemd/system, Puoi usare nano come mostrato nell'esempio seguente, in cui creo un'unità denominata sceneggiatura.servizio, Puoi nominarlo come consideri conveniente per identificare il tuo script.

sudo nano/etc/systemd/system/script.servizio

Il contenuto dell'unità per il tuo script sarà più semplice del Tomcat.servizio usato come esempio in precedenza.

Copia e incolla il seguente codice nel file che hai creato /etc/systemd/system.

Nota: Sostituire con il nome del tuo script e Con il percorso della tua sceneggiatura.

[Unità]
Descrizione = il tuo nome script qui
Dopo = impostazione predefinita.bersaglio
[Servizio]
ExecStart =/Path/to/script.sh
[Installare]
WANTEDBY = default.bersaglio

Dopo aver copiato il contenuto nel file sotto /etc/systemd/system/, È necessario abilitarlo utilizzando il comando SystemCtl come mostrato di seguito. Sostituire con il nome corretto assegnato all'unità.

Ora la tua sceneggiatura è pronta per essere eseguita all'inizio in Debian 11.

Conclusione

Come puoi vedere, eseguire script all'avvio in Debian 11 usando SystemD è piuttosto semplice. Qualsiasi livello di utente Linux può eseguire questa attività semplicemente creando un semplice file all'interno della directory delle unità. Naturalmente, Linux offre ulteriori metodi per eseguire script all'avvio che non sono stati descritti in questo tutorial come Cron. Qualsiasi utente Linux dovrebbe sapere come individuare le unità SystemD per eseguire servizi o script richiesti all'avvio. Entrambe le unità SystemD e Cron sono metodi accettati, mentre RC.locale o init.Gli script d sono obsoleti.

Grazie per aver letto questo tutorial spiegando come eseguire script su avvio utilizzando SystemD in Debian 11. Continua a seguirci per ulteriori suggerimenti e tutorial Linux.