Ci sono molte ragioni per cui vorresti eseguire uno script Python, un’app o un altro tipo di script (es: uno script Bash) ogni volta che il tuo Raspberry Pi si avvia. Forse hai un robot o un dispositivo IoT che deve essere pronto per eseguire un’attività non appena il Raspberry Pi che lo alimenta. O forse vuoi semplicemente avere un programma particolare in esecuzione in background in ogni momento e non vuoi doverlo avviare manualmente ad ogni sessione.
Esistono diversi modi per avviare automaticamente uno script all’avvio di Raspberry Pi, ma il più semplice è utilizzare crontab, una funzione di pianificazione che consente anche di impostare gli script da eseguire in momenti particolari.
Come eseguire uno script su Raspberry Pi Boot
1. Modifica il tuo elenco crontab digitando:
Puoi avviare crontab senza inserire sudo, ma se lo fai, non sarai in grado di eseguire script che richiedono privilegi di amministratore. In effetti, ottieni un elenco diverso di crontab se non usi sudo, quindi non dimenticare di continuare a usarlo o di non usarlo.
2. Selezionare nano se viene richiesto di richiedere un editor.
Si apre un file.
3. Aggiungi una riga alla fine del file che si legge in questo modo:
La riga deve iniziare con @reboot che gli dice di eseguire ogni volta che avvii il Raspberry Pi. Se si tratta di uno script Python, ti consigliamo di inserire il comando per avviare l’interprete python o python3 seguito dal percorso completo del tuo script Python.
Se si tratta di uno script Bash o di un’altra app, inserisci il percorso completo.
4. Salva ed esci. In nano, lo fai premendo CTRL + X, rispondendo Y e premendo Invio quando richiesto.
5. Rendi eseguibile il tuo script se è uno script Bash. Gli script Python non dovranno essere eseguibili perché l’interprete Python lo è già. Puoi rendere eseguibile qualsiasi script digitando
Se vuoi rimuovere il tuo script da crontab, digita semplicemente sudo crontab -e di nuovo e rimuovi o commenta quella riga. Nota che, se stai creando un progetto che non richiede l’utilizzo dell’ambiente finestrato, puoi risparmiare risorse di sistema configurando Raspberry Pi per l’avvio dalla riga di comando immettendo sudo raspi-config e quindi navigando su Opzioni di avvio – > Desktop/CLI e selezionando Console Autologin.
Come eseguire automaticamente uno script o un’app nella GUI di Raspberry Pi
Se desideri che il tuo script o app venga eseguito all’avvio di Raspberry Pi all’interno della GUI con finestra, segui questi passaggi.
1. Crea un file chiamato myapp.desktop (o qualcos’altro .desktop) nella directory /etc/xdg/autostart/.
2. Utilizzare il seguente layout nel file myapp.desktop.
Metti il comando e tutti i parametri sulla riga Exec=. Ad esempio, affinché un browser Chrome si apra su una pagina web, devi inserire “browser cromo [URL]”. Se la tua app richiede autorizzazioni sudo, puoi inserire sudo nel comando Exec.
Per eseguire uno script in una finestra di terminale, usa lxterminal seguito dal parametro –command e virgolette con “/bin/bash -c ‘MYCOMMANDS HERE; /bin/bash”’. Ad esempio, per avviare uno script python3 che richiede i permessi sudo, dovresti usare:
Ciò avvierà una finestra di terminale nell’ambiente con finestra all’avvio con lo script in esecuzione al suo interno. Una volta terminato lo script (o interrompendolo premendo CTRL+C), la finestra del terminale tornerà al prompt. Se vuoi che la finestra del terminale si chiuda da sola al completamento dello script, puoi omettere ;/bin/bash alla fine.
L’esecuzione di uno script in una finestra di terminale come questa può essere utile, perché se si tratta di uno script Python su un ciclo infinito (come avresti per un robot), puoi facilmente uccidere lo script premendo CTRL+C. Altrimenti, per terminare lo script, dovresti trovare il processo, che descriviamo di seguito.
Uccidere la sceneggiatura
Cosa succede se si desidera interrompere lo script di esecuzione automatica dopo l’avvio del Raspberry Pi? Se il tuo script ha già completato l’esecuzione, andrà dalla memoria, ma se è progettato per fare qualcosa continuamente, dovrai cercare e terminare l’attività.
1. Cerca il tuo script usando il comando ps aux e mettendo il nome del tuo script (o almeno un nome parziale) dopo grep.
Sostituisci app.py con il nome del tuo script. Verrà visualizzato un elenco di numeri di processo.
2. Uccidi ogni numero di processo usando il comando sudo kill -9. Per esempio,
Altri tutorial:
Come acquisire schermate su Raspberry Pi
Come configurare un server Web Raspberry Pi
Come eseguire Raspberry Pi 4 o 3 su un’unità SSD o Flash
Come creare scorciatoie da tastiera personalizzate su Raspberry Pi
Come eseguire emulatori su Raspberry Pi 4
Oltre 25 comandi Linux che gli utenti Raspberry Pi devono conoscere
Come realizzare una maglietta con il ticker delle notizie con Raspberry Pi