Come avviare automaticamente i servizi all’avvio in Linux?

Un aspetto fondamentale per un amministratore di sistema è la gestione dell’avvio automatico dei servizi. Questo significa che, al riavvio di un server, i servizi necessari si attiveranno senza intervento manuale.

I riavvii dei server possono essere dovuti a diverse circostanze, tra cui:

  • Riavvi pianificati, eseguiti settimanalmente o mensilmente per manutenzione.
  • Riavvi inattesi, causati da problemi hardware o a livello del kernel.

Una corretta configurazione dei servizi garantisce che essi siano operativi senza necessità di avviarli manualmente ogni volta dopo un riavvio.

Questa automazione semplifica notevolmente la gestione del sistema.

Gli esempi che seguono sono basati su due popolari distribuzioni testate su server Digital Ocean.

Configurazione su CentOS o RHEL 6.x

L’esempio che segue mostra come configurare l’avvio automatico del server HTTP Apache, ma la procedura è identica per qualsiasi altro servizio che si desideri avviare automaticamente su Red Hat Enterprise Linux (RHEL) o CentOS 6.

È possibile usare qualsiasi nome per il file di script; in questo caso, ho mantenuto il nome “httpd”.

  • Accedere al server Linux con privilegi di root.
  • Creare o copiare lo script desiderato nella directory /etc/init.d/.
      
      [[email protected] init.d]# ls -ltr httpd
      -rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
      [[email protected] init.d]#
      
    

Per gestire l’avvio dei servizi, utilizzeremo l’utility chkconfig, disponibile di default su Linux o CentOS.

  • Aggiungere lo script per l’avvio automatico tramite chkconfig con il parametro –add.
      
       [[email protected] init.d]# chkconfig --add httpd
       [[email protected] init.d]# chkconfig httpd on
      
    
  • Verificare che lo script sia stato aggiunto correttamente con il parametro –list.
    
      [[email protected] init.d]# chkconfig --list httpd
      httpd       0:off   1:off   2:on    3:on    4:on    5:on    6:off
      [[email protected] init.d]#
    
  

Fatto! Lo script “httpd” verrà eseguito all’avvio di Linux per attivare il servizio.

Qualora fosse necessario disabilitare l’avvio automatico del servizio, si possono utilizzare i seguenti comandi:

    
     chkconfig httpd off
     chkconfig --del httpd
    
 

Configurazione su RHEL o CentOS 7.x/8.x

La procedura per configurare l’avvio automatico dei servizi in RHEL 7 è differente rispetto a RHEL 6, in quanto utilizza systemd per la gestione dei servizi.

La maggior parte dei software, come gli script Apache, PHP, MySQL e Nginx, vengono aggiunti ai servizi durante l’installazione.

Prendiamo come esempio il servizio PHP-FPM.

Per prima cosa, verifichiamo lo stato del servizio php-fpm (presupponendo che lo script sia già presente in /usr/lib/systemd/system/):

        
          [[email protected] ~]# systemctl status php-fpm
          php-fpm.service - The PHP FastCGI Process Manager
          Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
          Active: inactive (dead) 
          [[email protected] ~]#
        
    

Come si può notare, lo stato è “disabled”, il che significa che il servizio non è configurato per l’avvio automatico.

Abilitiamo l’avvio automatico di php-fpm utilizzando systemctl:

        
         [[email protected] ~]# systemctl enable php-fpm
         Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
        [[email protected] ~]#
        
    

Ora, verifichiamo nuovamente lo stato:

        
         [[email protected] ~]# systemctl status php-fpm
         php-fpm.service - The PHP FastCGI Process Manager
         Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
         Active: inactive (dead)
         [[email protected] ~]#
        
    

Php-fpm è ora pronto per l’avvio automatico. Riavviare il server per verificarne il funzionamento.

Per disabilitare l’avvio automatico del servizio, utilizzare il comando seguente:

        
          systemctl disable php-fpm
        
    

Potrebbe essere utile consultare questa risorsa che spiega più in dettaglio i servizi di sistema e l’avvio automatico.

Configurazione su Ubuntu

La configurazione dell’avvio automatico dei servizi su Ubuntu segue un approccio leggermente diverso. Supponiamo che lo script si chiami “Nginx”.

  • Accedere al server Ubuntu con privilegi di root.
  • Copiare lo script nella cartella /etc/init.d/.
  • Eseguire il comando seguente:
        
          update-rc.d nginx defaults
        
    
  • Riavviare il server per assicurarsi che il servizio venga avviato correttamente.

Spero che questa guida sia stata utile.

L’amministrazione di sistemi è un’attività stimolante e in continua evoluzione. Se sei interessato ad approfondire le tue competenze, ti consiglio di dare un’occhiata a questo Corso Udemy.

Ecco anche come individuare la causa di un riavvio improvviso del sistema Linux. E qui trovi le istruzioni per installare/aggiornare PHP-FPM 5.6 su CentOS 6.x.

Ti è piaciuto questo articolo? Condividilo con altri!