Torna al blog

Come configurare un servizio Linux per l'avvio automatico dopo un riavvio o un arresto anomalo del sistema: Parte 1 (Esempi pratici)

Come configurare un servizio Linux per l'avvio automatico dopo un riavvio o un arresto anomalo del sistema: Parte 1 (Esempi pratici)

Introduzione

In informatica, le cose non vanno sempre come previsto. Spesso, i crash di sistema imprevisti spingono gli amministratori di sistema ad avviare riavvii e a far ripartire i singoli servizi. Capire e riavviare ogni servizio necessario al funzionamento dell'applicazione dopo un crash di sistema o un riavvio può essere noioso. In questa prima parte del tutorial in due parti, vi mostreremo come configurare i servizi per l'avvio automatico dopo un crash di sistema o un riavvio del server con esempi pratici. La seconda parte coprirà le informazioni teoriche su ciò che abbiamo ottenuto nella prima parte.

Useremo il servizio di database MySQL per gli esempi pratici. Tuttavia, gli stessi principi si applicano ad altri processi che compongono un server completo come Nginx, Apache, Redis, o altre applicazioni. Potete consultare i nostri tutorial su come installare MySQL, Nginx, e Apache.

Nelle distribuzioni Linux, ci sono tre principali sistemi di inizializzazione (init), a seconda della distribuzione in esecuzione. Alcune distribuzioni possono essere fornite con due o più sistemi init, come descritto di seguito:

  • System V – un sistema init più vecchio che si trova in distribuzioni più datate come:
    • Ubuntu 9.04 e precedenti
    • CentOS 5 e precedenti
    • Debian 6 e precedenti
  • Upstart – utilizzato in distribuzioni precedenti come:
    • CentOS 6
    • Ubuntu da 9.10 a Ubuntu 14.10 e Ubuntu 14.04
  • Systemd – utilizzato nelle distribuzioni più recenti come:
    • CentOS 7
    • Debian 7 e 8.
    • Ubuntu 15.04 e successive

Contesto

È comune per i sistemi operativi, e in particolare per i sistemi Linux e Unix, avere processi e servizi in esecuzione in background. Tali servizi potrebbero essere stati forniti con il software del sistema operativo. Alcuni potrebbero essere stati inclusi con le applicazioni utente installate.

I servizi del sistema operativo includono:

  • sshd – È il demone che consente le connessioni remote.
  • cupsd – È il demone che controlla la stampa.

I servizi delle applicazioni installate includono:

  • httpd/apache2 – Un servizio fornito con il server web Apache2.
  • nginx – Un servizio fornito con il server web Nginx.

Per garantire che le nostre applicazioni web, database, server di posta, etc. siano accessibili, tali servizi devono essere eseguiti continuamente. Se siete amministratori di sistema o sviluppatori di app curiosi, vorrete assicurarvi che tali servizi funzionino continuamente e, nell'eventualità sfortunata di un crash di sistema, si avviino automaticamente dopo il riavvio del sistema. Ed è esattamente ciò che impareremo in questo tutorial pratico.

Sebbene l'impostazione di avvisi e il monitoraggio continuo della distribuzione Linux siano fondamentali, alcuni servizi Linux possono autoripararsi se ben configurati, grazie ai sistemi init che gestiscono i servizi.

Nelle distribuzioni Linux, esistono modalità operative che implementano l'inizializzazione del sistema chiamate runlevel. Affinché un servizio si avvii automaticamente, deve essere aggiunto a un runlevel. Ogni sistema simile a Linux e Unix ha quattro runlevel comuni, come elencato di seguito:

  • 0 – Il runlevel 0 indica lo spegnimento del sistema.
  • 1 – Il runlevel 1 indica la modalità utente singolo, di ripristino.
  • 2, 3, 4 – Questi runlevel indicano gli stati in cui il sistema è stato avviato in modalità testo, multi-utente e con rete abilitata.
  • 5 – Il runlevel 5 indica la modalità grafica, multi-utente e con rete abilitata.
  • 6 – Il runlevel 6 indica il riavvio del sistema.

In questo tutorial, imparerete come configurare un servizio Linux per l'avvio automatico al riavvio del sistema utilizzando le tre diverse modalità init spiegate in precedenza: System V, Upstart, and Systemd.

Prerequisiti

Questo tutorial pratico presuppone che abbiate un VPS Linux da utilizzare per seguire i passaggi. Potete approfittare del periodo di prova gratuito su Cloudsigma e avviare alcuni server per provare i comandi. Potete seguire il nostro tutorial passo-passo su come configurare i vostri server Ubuntu.

I server creati in questo tutorial servono esclusivamente per seguire le esercitazioni pratiche e non dovreste provare i comandi su un server di produzione, poiché molti servizi verrebbero interrotti.

Alcune delle distribuzioni di cui avrete bisogno:

  • Ubuntu 9.04 e precedenti, o Debian 6 x64 (saranno utilizzati per dimostrare il sistema init System V)
  • Ubuntu 14.04 x64 (sarà utilizzato per dimostrare Upstart)
  • CentOS 7 x64 (verrà utilizzato per dimostrare systemd).

Assicurati di aver configurato un utente non root con privilegi sudo. Puoi dare un'occhiata al nostro tutorial sulla configurazione del file sudoers qui.

Utilizzo di System V

Questo è il sistema di init più vecchio che veniva utilizzato nelle versioni precedenti di distribuzioni Linux come:

  • Debian 6 e versioni precedenti
  • CentOS 5 e versioni precedenti
  • Ubuntu 9.04 e versioni precedenti

La maggior parte delle applicazioni server installabili come MySQL e Nginx viene fornita con script di init salvati nella directory /etc/init.d per impostazione predefinita. Questi script consentono loro di avviarsi dopo un riavvio. Tuttavia, potrebbero non essere configurati per avviarsi automaticamente dopo un arresto anomalo del sistema.

Lista di controllo per l'avvio automatico per System V

Il primo passo consiste nel verificare la disponibilità di uno script di init Bash funzionante nella directory /etc/init.d/service. Per abilitare il servizio, nelle distribuzioni Debian o Ubuntu, utilizza il comando update-rc.d, in un sistema CentOS, utilizza chkconfig. Sostituisci con il nome effettivo del tuo servizio:

Il comando precedente crea un symlink nella directory /etc/rc2.d che assomiglia all'output seguente. Non crearlo manualmente poiché viene generato automaticamente:

In fondo al file /etc/inittab aggiungi una riga respawn come mostrato nell'esempio generico seguente. Ricorda di sostituirla con il percorso effettivo dello script di avvio della tua applicazione:

Inserisci i seguenti comandi per arrestare e avviare il servizio:

Successivamente, riavvia il server:

Come testare le modifiche?

Dopo aver riavviato il server, verifica che il servizio sia attivo cercando il numero del processo tramite il comando:

Termina il processo utilizzando il comando:

Dopo cinque minuti, verifica che il servizio sia attivo e funzionante.

Configurazione pratica di System V con un servizio reale

Nei passaggi seguenti, proveremo una vera applicazione server come MySQL. Dovresti avere accesso a una macchina virtuale Debian 6. Con un account che dispone di privilegi sudo, connettiti ad essa tramite SSH o putty se ti trovi su un desktop Windows.

Passo 1: Installa MySQL

Inserisci il seguente comando per installare MySQL:

All'inizio dell'installazione, ti verrà richiesta una password di root. Quindi, inserisci una password a tua scelta e confermala. Attendi il completamento dell'installazione, quindi inserisci il seguente comando per iniziare a mettere in sicurezza MySQL:

Ti verrà richiesta la password di root inserita in precedenza. Premi N per mantenerla. Successivamente, premi Y per accettare le richieste successive per rimuovere gli utenti anonimi, disabilitare l'accesso root remoto e rimuovere il database di test. Infine, accetta di ricaricare la tabella dei privilegi affinché le modifiche abbiano effetto automaticamente.

Questo completa l'installazione di MySQL. Puoi verificare se il servizio è in esecuzione inserendo il seguente comando:

Passo 2: Configura MySQL per l'avvio automatico dopo il riavvio

MySQL è configurato per impostazione predefinita per avviarsi dopo un riavvio del sistema. Puoi trovare il symlink allo script di inizializzazione di MySQL nella directory /etc/rc2.d. Questi symlink non vengono creati manualmente. Puoi utilizzare il comando update-rc.d per abilitare e disabilitare i servizi.

Inserisci il seguente comando per elencare i contenuti della directory:

Controlla se riesci a notare il symlink allo script di init di MySQL:

La S è importante, perché finché riesci a vedere una S script nella directory del runlevel predefinito per il servizio, il sistema init avvierà il servizio all'avvio del server. Per verificare che MySQL si avvii automaticamente dopo il riavvio, inserisci il seguente comando per riavviare il sistema:

La connessione ssh si interrompe durante il riavvio. Attendi un minuto o due e connettiti di nuovo. Esegui il seguente comando per verificare se il servizio è in esecuzione:

L'output indicherà che il servizio è in esecuzione. Ciò significa che si è avviato automaticamente dopo il riavvio. Per i servizi che non sono configurati per l'avvio automatico, dovrai configurarli manualmente.

Possiamo disabilitare il servizio MySQL e riavviare il sistema per verificare se si avvia automaticamente. Nei sistemi Debian e Ubuntu, puoi utilizzare il comando update-rc.d per aggiungere o rimuovere servizi dal sistema init. Inserisci il seguente comando per disabilitare il servizio MySQL:

Riavvia il sistema e connettiti di nuovo tramite ssh. Prova a connetterti a MySQL utilizzando il seguente comando:

Riceverai un errore di MySQL simile a:

Quindi, inserisci il seguente comando per riabilitare il servizio:

Se ti trovi su una distribuzione CentOS, il comando sarà:

Poiché MySQL inizialmente non si avviava, devi avviarlo. Inserisci il seguente comando:

Passo 3: Configurare un servizio (MySQL) per l'avvio automatico dopo un arresto anomalo del sistema

System V non avvierà automaticamente un processo dopo un arresto anomalo. Possiamo simulare un arresto anomalo del sistema trovando l'ID del processo MySQL e terminandolo. Inserisci il seguente comando per trovare l'ID del processo MySQL:

Dall'output, trova i processi MySQL. I processi principali che eseguono MySQL sono mysqld_safe e mysqld. Prendi nota dei loro ID di processo (sono numeri) e usa i seguenti comandi per terminarli:

Verifica lo stato del servizio MySQL utilizzando il comando:

L'output indicherà che MySQL si è arrestato. Possiamo riavviarlo manualmente utilizzando il comando di avvio del servizio. Tuttavia, desideriamo un processo automatico. Per ottenere questo comportamento automatico, dobbiamo modificare il file /etc/inittab. Questo è il primo file che System V init legge all'avvio. Il file /etc/inittab contiene istruzioni su come deve comportarsi un processo in caso di arresto anomalo. Se configurato correttamente, riavvia nuovamente il sistema in caso di arresto anomalo. Nel nostro caso, vogliamo assicurarci che MySQL sia uno di questi servizi.

Il file /etc/inittab è estremamente cruciale per una distribuzione Linux. Determina se il sistema si riavvierà o meno. Se commetti un errore nei comandi, il sistema potrebbe non avviarsi al riavvio. Come abbiamo indicato, speriamo che tu stia provando questi comandi solo in un ambiente server di test e non in un ambiente di produzione.

Innanzitutto, crea una copia del file prima di iniziare a modificarlo:

Successivamente, apri il file usando nano:

Scorri fino alla fine del file e aggiungi il seguente frammento di codice:

Il comando precedente riavvia il processo mysql_safe dopo un arresto anomalo del sistema. Ha quattro campi separati da due punti come spiegato di seguito:

  • ms: Specifica un ID per il processo.
  • 2345: Specifica i runlevel a cui si applica il comando. In questo caso: runlevel 2, 3, 4, 5.
  • respawn: Specifica l'azione. In questo caso, stiamo rigenerando o riavviando il processo.
  • /bin/sh /usr/bin/mysqld_safe: L'ultima parte definisce il processo – il comando che viene eseguito per riavviare il processo.

Ora premi Ctrl + O e Invio per salvare il file. Quindi, premi Ctrl + X per chiudere l'editor. Inserisci il seguente comando per avviare il servizio:

Riavvia il server, quindi esegui i comandi spiegati in precedenza per trovare il numero del processo. Successivamente, termina i processi, a partire dal comando ps -ef | grep mysql. Attendi qualche minuto e inserisci il seguente comando per verificare lo stato di MySQL:

L'output dovrebbe indicare che il servizio MySQL è attivo e funzionante, il che significa che è stato in grado di riavviarsi dopo un arresto anomalo. Puoi seguire lo stesso processo per altri servizi sul tuo server.

Avvio automatico dei servizi con Upstart

Upstart è un altro sistema di init che è stato inizialmente introdotto in Ubuntu 6 e successivamente è diventato quello predefinito in Ubuntu 9.10. Anche RHEL 6 e i suoi derivati, e Chrome OS di Google utilizzano il sistema di init Upstart. Per i passaggi di questa sezione, dovresti avere un server che esegue una delle seguenti distribuzioni:

  • Da Ubuntu 9.10 a Ubuntu 14.10, e la versione LTS di Ubuntu, ovvero Ubuntu 14.04.
  • CentOS 6

Vediamo come configurare i file di Upstart per avviare automaticamente i servizi del server in caso di riavvii o arresti anomali del sistema. Upstart utilizza file di configurazione memorizzati nella directory /etc/init per controllare i servizi in una distribuzione Linux. Le versioni più recenti delle applicazioni server come MySQL e Nginx installano i propri script di init nella directory /etc/init . Pertanto, si avvieranno dopo il riavvio e dopo un arresto anomalo del sistema senza che tu debba fare nulla.

Lista di controllo per l'avvio automatico con Upstart

Ecco alcune configurazioni di riferimento da verificare per assicurarsi che il servizio sia configurato per l'avvio automatico.

  • Assicurati che il servizio abbia uno script di init nella directory /etc/init/service_name.conf service_name che corrisponde al nome effettivo del tuo servizio specifico. Dovresti verificare la presenza delle seguenti due righe nel /etc/init/service_name.conf file:
    • Una riga contenente qualcosa come start on runlevel [2345]. Indica che il servizio verrà avviato al riavvio del sistema.
    • Una riga contenente qualcosa come respawn. Indica che il servizio verrà rigenerato/riavviato dopo un arresto anomalo del sistema.
  • Assicurati che non ci sia alcun file di override del servizio nella directory: /etc/init/service_name.override. A meno che tu o un altro amministratore di sistema non l'abbiate creato in precedenza.
  • Inserisci i seguenti comandi per arrestare e avviare il servizio:
  • Riavvia il sistema e riconnettiti dopo pochi minuti. Ora, esegui alcuni test per vedere se tutto funziona
  • Dopo il riavvio, verifica che il servizio sia attivo e funzionante. Inserisci il seguente comando per cercare il numero del processo, sostituendo service_name con il nome effettivo del servizio che stai testando:
  • Una volta ottenuto il numero del processo, inserisci il seguente comando per terminare il processo:
  • Attendi qualche secondo e verifica nuovamente che il processo sia attivo e funzionante.

Configurazione pratica di Upstart con un servizio reale

Nella prossima sezione, cercheremo di dimostrare come utilizzare Upstart con un servizio reale. Eseguiremo i test su un server virtuale Ubuntu 14.04 con MySQL como servizio. Connettiti al tuo server di test Ubuntu 14.04 usando ssh o putty se sei su Windows. Come di norma, dovresti utilizzare un utente non root con privilegi sudo. Una volta effettuato l'accesso, possiamo iniziare i passaggi:

Passo 1: Installa MySQL

Ricorda sempre di aggiornare i pacchetti prima di installare qualsiasi nuovo software:

Ora, inserisci il seguente comando per installare il server MySQL:

Crea una password di root quando richiesto. Attendi il completamento dell'installazione ed esegui il seguente comando per iniziare a mettere in sicurezza la tua installazione di MySQL:

Segui le istruzioni, come hai fatto nella sezione precedente. Quindi, svuota i privilegi affinché le modifiche abbiano effetto immediato.

Passo 2: Configurare un servizio (MySQL) per l'avvio automatico dopo un riavvio del sistema

MySQL è impostato per avviarsi automaticamente dopo un riavvio. Stiamo solo guardando i suoi file di configurazione per imparare come configurare le nostre applicazioni personalizzate per avviarsi anch'esse automaticamente dopo un riavvio. Il servizio MySQL è stato avviato automaticamente dopo l'installazione. Tuttavia, confermiamo che sia in esecuzione inserendo il seguente comando:

Dovresti vedere un output che indica che il servizio MySQL è in esecuzione, qualcosa del tipo:

Riavvia il server e accedi nuovamente. Inserisci di nuovo il seguente comando per verificare che sia in esecuzione:

L'output indicherà che MySQL è in esecuzione, il che significa che è stato avviato automaticamente dopo il riavvio. In questo caso, non è necessario modificare nulla. Tuttavia, questo comportamento potrebbe non essere lo stesso per altre applicazioni. Ti starai chiedendo come il sistema di inizializzazione Upstart sappia che deve avviare automaticamente MySQL dopo il riavvio. MySQL installa il suo file di configurazione di avvio Upstart nella posizione /etc/init/mysql.conf. I file Upstart non sono script di shell, ma file di testo con blocchi di script per gli eventi pre-start e post-start. I blocchi istruiscono il sistema Upstart su cosa eseguire quando il processo MySQLd si sta avviando o quando è già stato avviato.

Inserisci il seguente comando per aprire il file nell'editor con nano:

L'output del file potrebbe apparire così:

Come si può vedere, il blocco start istruisce MySQL ad avviarsi sui runlevel 2,3,4,5 e non 0,1,6. Se stai definendo una configurazione Upstart per la tua applicazione, la definirai in questa sezione. Il blocco respawn istruisce Upstart su cosa fare dopo un arresto anomalo. Ne parleremo nella prossima sezione, quindi mantieni il file aperto nell'editor nano.

Passo 3: Configurare un servizio (MySQL) per l'avvio automatico dopo un arresto anomalo

La direttiva respawn nel file /etc/init/mysql.conf istruisce Upstart a riavviare il servizio MySQL dopo un arresto anomalo.

La direttiva respawn limit istruisce Upstart su quante volte dovrebbe tentare di riavviare il servizio MySQL dopo un arresto anomalo in un intervallo specificato in secondi. Il primo argomento, (2) indica il numero di tentativi. Il second argomento, (5) indica l'intervallo in secondi. Se dopo un arresto anomalo, Upstart non riesce a riavviare il servizio MySQL entro la soglia stabilita, questo rimarrà arrestato. Questo comportamento è progettato per evitare che la stabilità del sistema venga compromessa nel caso in cui continui a tentare di riavviare servizi che si arrestano continuamente in modo anomalo. Ora puoi chiudere l'editor senza apportare modifiche.

Verifichiamo se MySQL si riavvia automaticamente dopo un arresto anomalo. Inserisci il seguente comando per verificare lo stato e ottenere il numero di processo del servizio MySQL:

L'output dovrebbe essere simile a questo. Prendi nota del numero di processo poiché lo useremo in seguito:

Successivamente, inserisci il seguente comando per terminare il processo. Questo emula un arresto anomalo. Sostituisci con il numero di processo ottenuto nel comando precedente:

Verifica nuovamente lo stato di MySQL inserendo il seguente comando:

Dovrebbe essere nuovamente in esecuzione, ma probabilmente con un numero di processo diverso:

Questo accade a causa della direttiva respawn nel /etc/init/mysql.conf file. Garantisce che, in caso di guasto del sistema, MySQL si avvierà automaticamente. Di conseguenza, la tua applicazione che dipende da un database MySQL continuerà a funzionare come previsto.

Avvio automatico dei servizi con Systemd

Systemd è un sistema di inizializzazione presente nella maggior parte delle distribuzioni Linux recenti. È probabile che sia quello che utilizzerai quando crei un nuovo VPS. È stato introdotto per la prima volta in Fedora. Viene fornito con RHEL 7 e i suoi derivati come CentOS 7. A partire da Ubuntu 15.04, troverai Systemd nativamente. Systemd è retrocompatibile con gli script e i comandi di inizializzazione di System V. Pertanto, qualsiasi servizio System V dovrebbe funzionare sotto Systemd. La maggior parte dei comandi utilizzati in System V e Upstart sono stati modificati per funzionare con Systemd.

Con Systemd, la maggior parte delle applicazioni server come MySQL e Nginx si avvierà automaticamente dopo un riavvio o uno spegnimento, senza che tu debba modificare nulla. Per le tue app personalizzate, devi creare i tuoi script di inizializzazione per riavviare automaticamente i servizi.

Per informazioni più approfondite su Systemd, consulta il nostro tutorial su come gestire i servizi e le unità di Systemd con Systemctl.

Lista di controllo per l'avvio automatico con Systemd

Ecco alcune configurazioni di riferimento da verificare per assicurarsi che il servizio sia configurato per avviarsi automaticamente con Systemd.

  • Il servizio deve avere uno script di inizializzazione Systemd funzionante situato in /etc/systemd/system/multi-user.target.wants/serviceName.service. ServiceName è il nome effettivo del servizio che stai configurando.
  • Il comando per abilitare il servizio è:
  • Il comando crea un collegamento simbolico (symlink) nella directory /etc/systemd/system/multi-user.target.wants/ che potrebbe apparire simile a:
  • Con quel collegamento simbolico attivo, avrai abilitato il riavvio automatico dopo l'avvio.
  • Per attivare le modifiche, ricarica il demone di sistema e poi riavvia il servizio utilizzando i seguenti comandi:
  • Per verificare se le tue configurazioni avvieranno il servizio dopo un riavvio, puoi riavviare il sistema:
  • Al riavvio del sistema, cerca il numero del processo utilizzando il comando:
  • Prendi nota del numero del processo e terminalo utilizzando il comando:
  • Attendi qualche secondo e cerca nuovamente il servizio per verificare che sia stato ripristinato.

Configurazione pratica di Systemd con un servizio reale

In questa sezione, proveremo a configurare il servizio MySQL su una macchina virtuale Ubuntu 20.04.

Passo 1: Connettiti al tuo Virtual Private Server (Ubuntu 20.04 o CentOS 7 x64)

Accedi al tuo VPS o creane uno dal pannello Cloudsigma e connettiti usando ssh o putty se sei su Windows. Per questa sezione del tutorial stiamo utilizzando un server Ubuntu 20.04. Gli stessi comandi possono essere applicati a CentOS 7. Assicurati di utilizzare un utente non root con privilegi sudo.

Passo 2: Installa MySQL (il servizio che stiamo configurando)

Per prima cosa, aggiorna il tuo sistema:

Quindi, puoi installare il server MySQL utilizzando il comando:

Successivamente, esegui il seguente comando per iniziare a mettere in sicurezza MySQL:

Lo script ti chiederà se desideri configurare il componente VALIDATE PASSWORD o premere un tasto qualsiasi per procedere senza abilitare il componente. Segui questo link per saperne di più sul componente di convalila della password di MySQL.

Premi 1 per abilitarlo e poi scegli il livello medio premendo 1. Inserisci una password complessa: una combinazione di maiuscole, minuscole, caratteri speciali e numeri. Conferma la password e conferma il prompt che ti chiede se desideri utilizzare la password inserita come password di root. Per tutti gli altri prompt, premi y per accettarli come hai fatto nelle sezioni precedenti. Infine, esegui il flush dei privilegi per MySQL per ricaricare le modifiche.

Passaggio 3: Configurare MySQL per l'avvio automatico dopo il riavvio

MySQL è configurato per avviarsi dopo un riavvio, quindi non c'è alcuna modifica da fare. Tuttavia, possiamo utilizzare i file di configurazione di MySQL per imparare a configurare i nostri file personalizzati.

Per prima cosa, verifica se il servizio MySQL è stato configurato per avviarsi all'avvio del sistema. Inserisci il seguente comando (nota che in CentOS il servizio MySQL si chiama mysqld):

Ecco l'output:

CS screenshot

Successivamente, riavvia il VPS inserendo il coyote comando:

Connettiti di nuovo tramite SSH e inserisci il seguente comando per verificare lo stato del servizio MySQL:

Dovresti ottenere un output simile a quello nello screenshot qui sotto:

System Crash 3

Per disabilitare il servizio MySQL, inserisci il seguente comando:

L'output indica che i symlink al servizio MySQL sono stati rimossi da Systemd:

screenshot it 4

Puoi verificare se il servizio è abilitato con il sistema di init Systemd inserendo il seguente comando:

L'output mostrerà che è disabilitato. Se riavvii il sistema, MySQL non si avvierà all'avvio:

disabled screenshot

Abilita il servizio inserendo il seguente comando:

L'output mostra il symlink al servizio MySQL creato nell'init di Systemd:

screenshot 5

Al riavvio, il servizio MySQL si avvierà automaticamente.

Passaggio 4: Configurare MySQL per l'avvio automatico dopo un crash

MySQL è configurato per riavviarsi automaticamente dopo un crash. Vediamo come questa configurazione è implementata in Systemd. Systemd utilizza i file unit per la configurazione. Inserisci il seguente comando per aprire il file di configurazione mysql.service in nano:

L'output si presenta così:

System Crash 2

Ciò che ci interessa è la Restart direttiva. Come definito, MySQL si riavvierà in caso di errore. La direttiva Restart definisce cosa dovrebbe accadere in Systemd, proprio come la direttiva Respawn in Upstart.

Non tutti i servizi avranno questa direttiva. Per abilitare il riavvio di un servizio dopo un crash, puoi sempre aggiungere la direttiva Restart sotto il blocco [Service] del file unit di configurazione del servizio. Se l'intestazione [Service] non esiste, aggiungila. Ora, esci dall'editor premendo Ctrl + X.

Per emulare un crash, trova l'ID del processo MySQL inserendo il seguente comando:

Il comando di controllo dello stato mostra un ID di processo, nel nostro caso è 3555:

System Crash 1

Inserisci il seguente comando per terminare il processo. Sostituiscilo con l'ID del processo che hai ottenuto sul tuo server:

Inserisci il seguente comando per verificare lo stato:

L'output mostra che MySQL è in esecuzione, ma con un nuovo ID di processo. Ciò significa che è stato riavviato automaticamente dopo il crash:

screenshot 8

Conclusione

In questo tutorial, ti abbiamo introdotto ai tre sistemi di inizializzazione nelle distribuzioni Linux: System V, Upstart e Systemd. Abbiamo imparato come utilizzare uno qualsiasi dei sistemi di init per configurare i tuoi servizi in esecuzione continua per l'avvio automatico dopo un riavvio o un crash del sistema. Questo dovrebbe servire come punto di partenza quando hai bisogno di configurare i tuoi servizi. La prima parte di questa serie è stata principalmente un tutorial pratico. La la seconda parte è più teorica e presenta maggiori dettagli su ciò che abbiamo fatto nella prima parte. Non eliminare ancora i tuoi server di test, poiché li userai anche nella seconda parte.

Buon computing!

 

author

Manpreet Singh

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.