L’esecuzione di script all’avvio del sistema è una funzionalità comune richiesta per automatizzare compiti come la configurazione di rete, l’avvio di servizi personalizzati, o qualsiasi altro compito che deve essere eseguito subito dopo l’avvio del sistema. In Debian 11, ci sono diversi metodi per realizzare questa operazione, ciascuno adatto a differenti scenari di utilizzo. In questa guida, esploreremo alcuni dei metodi più comuni per eseguire uno script all’avvio in Debian 11.
Metodo 1: Utilizzo di systemd
systemd è il sistema di init e il sistema manager di sistema predefinito in Debian 11. È possibile creare un “servizio” systemd per eseguire uno script all’avvio.
- Crea uno Script: Prima di tutto, scrivi lo script che vuoi eseguire all’avvio. Per esempio, salvalo come
/usr/local/bin/mio-script.sh e rendilo eseguibile con il comando chmod +x /usr/local/bin/mio-script.sh.
- Crea un File di Servizio
systemd: Crea un nuovo file di servizio systemd in /etc/systemd/system/, ad esempio mio-script.service, usando il tuo editor di testo preferito:
sudo nano /etc/systemd/system/mio-script.service
- Inserisci il Contenuto del File di Servizio: Aggiungi il seguente contenuto al file di servizio:
[Unit]
Description=Mio Script all'Avvio
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/mio-script.sh
[Install]
WantedBy=multi-user.target
Questo file di configurazione definisce un nuovo servizio chiamato “Mio Script all’Avvio” che verrà eseguito dopo che la rete è disponibile.
- Abilita il Servizio: Per fare in modo che lo script venga eseguito all’avvio, abilita il servizio con il comando:
sudo systemctl enable mio-script.service
- Avvia il Servizio: (Opzionale) Se vuoi avviare lo script immediatamente senza riavviare, usa:
sudo systemctl start mio-script.service
Metodo 2: Utilizzo di cron
Un altro metodo per eseguire uno script all’avvio è utilizzare cron, il demone dei lavori pianificati in Linux.
- Apri la Tabella
crontab:
- Aggiungi un Lavoro
@reboot: Aggiungi la seguente riga alla fine del file crontab:
@reboot /usr/local/bin/mio-script.sh
Questo farà sì che cron esegua lo script /usr/local/bin/mio-script.sh ad ogni riavvio del sistema.
Metodo 3: Utilizzo di /etc/rc.local
Anche se questo metodo è considerato deprecato e meno affidabile rispetto ai precedenti, su alcuni sistemi potrebbe essere ancora utilizzato.
- Crea/Edita il File
rc.local: Se non esiste, crea un file rc.local in /etc/rc.local:
- Aggiungi lo Script: Aggiungi il comando per eseguire il tuo script prima della riga
exit 0:
/usr/local/bin/mio-script.sh
exit 0
- Rendi
rc.local Eseguibile: Assicurati che il file sia eseguibile:
sudo chmod +x /etc/rc.local
Conclusione
Ci sono diversi modi per eseguire uno script all’avvio in Debian 11, ognuno con i suoi pro e contro. L’utilizzo di systemd è il metodo più moderno e flessibile, consigliato per la maggior parte degli scenari. cron offre una soluzione semplice e diretta, specialmente per gli script che non dipendono da altri servizi. L’uso di /etc/rc.local, sebbene deprecato, può essere ancora un’opzione in alcuni casi specifici. Scegli il metodo che si adatta meglio alle tue esigenze.