Come usare /etc /rc.locale all'avvio

Come usare /etc /rc.locale all'avvio
IL rc.Locale Lo script in alcune distribuzioni Linux e sistemi UNIX è uno script di avvio superutente, di solito situato sotto la directory/etc/etc/rc.D. Il nome del file RC si riferisce all'esecuzione del controllo.

Rc.Il locale è uno script obsoleto tenuto per scopi di compatibilità per i sistemi SystemV.

Una volta era un file universale presente nella maggior parte delle distribuzioni Linux a causa della sua semplicità per gli amministratori Linux per definire gli script di avvio o i servizi aggiuntivi per l'avvio.
Il file rc.Il locale non contiene informazioni sui componenti di avvio del sistema, ma solo componenti definiti superutenti/root. Tuttavia, non tutti i programmi di avvio root sono descritti in RC.locale ma solo quelli che non interferiscono con i componenti del sistema. Di solito, RC.Il locale viene eseguito dopo l'avvio di servizi normali.

I nuovi sistemi Linux, incluso SystemD, hanno sostituito l'RC.sceneggiatura locale, ma può essere ripristinata nonostante Essere una soluzione consigliata. Questo tutorial mostra come ripristinare e utilizzare il RC.Script locale e utilizzare RC-Local di SystemD su nuove distribuzioni Linux.

Abilitazione /etc /rc.Distribuzioni locali in Linux utilizzando SystemD:

IMPORTANTE: È importante ricordare /etc /rc.Il locale è interrotto e sostituito. Il metodo corrente per eseguire gli script all'avvio è descritto dopo le istruzioni per abilitare /etc /RC.Locale. Questo tutorial è destinato agli utenti con esigenze specifiche.

Per iniziare, crea il file /etc/rc.Locale Utilizzando l'editor che desideri e sudo (o root):

nano /etc /rc.Locale

Incolla il codice seguente nel file e sostituire Con il comando che desideri eseguire all'avvio. Non usare sudo. Se un comando incluso in questo script non riesce a eseguire, il servizio che chiamerà RC.locale (RC-Local.servizio) fallirà.

#!/bin/sh -e
#
# rc.Locale
#
# Questo script viene eseguito alla fine di ogni runlevel multiutente.
# Assicurati che lo script "uscirà 0" sul successo o su qualsiasi altro
# Valore sull'errore.
#
# Per abilitare o disabilitare questo script, basta cambiare l'esecuzione
# bit.
#
# Per impostazione predefinita, questo script non fa nulla.

uscita 0

Nel mio esempio, userò il RC.Script locale per aggiornare il database Vuls di Scansione di sicurezza ogni volta che inizia il sistema. Puoi scrivere qualsiasi script che desideri essere eseguito all'inizio, tranne per gli script di networking (come iptables) che possono interferire con il normale processo di avvio e avere i propri script o directory di avvio.

Salva il file (Ctrl+X E Y) e dargli le autorizzazioni di esecuzione eseguendo il comando di seguito:

sudo chmod +x /etc /rc.Locale

Crea il file /etc/systemd/system/rc-local.servizio, correre:

nano/etc/systemd/system/rc-local.servizio

Incolla i seguenti comandi e uscita il salvataggio premendo Ctrl+X E Y.

ExecStart =/etc/rc.Inizio locale
Timeoutsec = 0
Standardutput = tty
RemafterExit = sì
Sysvstartpriority = 99
[Installare]
WANTEDBY = Multi-utente.bersaglio

Abilita RC-Local:

sudo systemctl abilita rc-local

Ora puoi avviare RC-Local.servizio, che leggerà /etc /rc.File locale. Esegui il comando mostrato di seguito:

SystemCtl Avvia RC-Local.servizio

Puoi verificare se RC-Local è stato caricato correttamente eseguendo quanto segue:

Stato SystemCtl RC-Local.servizio

Il modo corretto (SystemD):

Il processo sopra descritto è vecchio, obsoleto e può arrestare alcuni servizi.
Questa sezione mostra il processo corrente per avviare script o servizi all'avvio per le distribuzioni Linux utilizzando SystemD.

SystemD è un responsabile dei servizi che assegna i gruppi di controllo dei servizi (cgroup) e tiene traccia dei processi. SystemD è il processo (PID) 1 responsabile dell'avvio del sistema.

Per aggiungere servizi o script all'avvio, è necessario creare un unità di sistema.
Le unità SystemD includono servizi (.servizio), punti di montaggio (.montare), dispositivi (.dispositivo) o prese (.PRESA). Contrariamente al vecchio processo descritto in precedenza con RC.Locale, invece di modificare lo stesso file contenente informazioni sugli script dell'utente, è necessario creare un'unità di servizio SystemD per ogni script che si desidera eseguire all'avvio.

Le unità SystemD si trovano a /etc/systemd/system, Ed è qui che dobbiamo creare l'unità Systemd per lo script che vogliamo eseguire all'avvio.

La seguente immagine mostra il contenuto dell'unità TeamViewer.servizio.

Dove le direttive [unità]:

  • Descrizione = Questa direttiva descrive l'unità; È possibile impostare il nome dell'unità.
  • Richiede = Qui, puoi specificare le dipendenze per prevenire i guasti di avvio.
  • Desideri = Come il precedente, mantiene il servizio funzionante anche se non trova le dipendenze definite.
  • Dopo = L'unità inizierà dopo la specifica in questa direttiva.

Alcune direttive utilizzate nella sezione [Servizio] possono essere condivise con [unità].

  • Tipo = Nell'esempio mostrato sopra, biforcazione indica che il servizio verrà ucciso, mantenendo i processi per bambini che devono essere assegnati un PID.
  • Pidfile = La direttiva del forking richiede la direttiva PIDFILE, che deve contenere il percorso del PID del file del processo figlio per SystemD per identificarlo.
  • ExecStart = Qui, si specifica il percorso e i comandi che desideri essere eseguiti. Questo è simile a RC.File locale.
  • Riavvia = Questa direttiva istruisce SystemD quando riavviare l'unità. Le opzioni disponibili sono in fallico, on-abort, sempre, on-success, on-watchdog o onnormali.
  • StartlimitInterVal = Questa direttiva indica che l'unità ha 60 secondi per 10 tentativi di riavvio al fallimento.
  • StartlimitBurst = Questa direttiva indica il limite dei tentativi, nell'esempio sopra, 10 tentativi in ​​60 secondi.

L'unica direttiva [installa] nell'esempio sopra è desiderata.

  • Wantedby = Qui, puoi specificare questa unità come dipendenza; è simile alla direttiva dei desideri, ma definire l'attuale unità è considerata una dipendenza da un'altra unità.

Nota: Puoi controllare tutte le direttive di SystemD a
https: // www.Freedesktop.org/software/systemd/man/systemd.direttive.html

Aggiunta della tua unità di sistema:

Per eseguire uno script all'avvio, crealo sotto /etc/systemd/system con il suo nome seguito da un punto e un servizio, ad esempio, Linuxhint. Servizio. Puoi usare Nano come nel seguente campione:

Incolla quanto segue, sostituendo <Nome o descrizione dello script> Con una descrizione della tua sceneggiatura e dove /usr/sbin/linuxhint.sh Scrivi il percorso corretto.

[Unità]
Descrizione ==