Vi sarà capitato di voler eseguire uno script Python, ma anche di altro tipo, all’avvio della vostra Raspberry Pi quindi scrivo questo breve how-to in modo da tenerne traccia. Possiamo farlo in diversi modi, ma quello che mi viene più facile da usare e da controllare è utilizzando i job di Cron, il nostro job scheduler personale che troviamo pratiucamente su ogni tipo di installazione *nix based.

Step 1 – Creare lo script

Prima di tutto abbiamo bisogno del nostro script, lo possiamo creare da linea di comando o con il nostro editor preferito, l’importante è sapere esattamente come si chiama e dove si trova sul nostro disco, nel mio caso lo script è scriptEsempio.py e lo salverò nella cartella “/home/pi/script/”, ma sentitevi liberi di chiamare la cartella e lo script come vi pare.

Prima di continuare vi consiglio di verificare che lo script funzioni correttamente, quindi eseguitelo, debuggatelo e che il path scelto sia corretto.

Step 2 – Aggiungere un nuovo job in Cron

Per aggiungere un nuovo job di Cron bisogna modificare il nostro crontab che contiene l’elenco completo dei job creati fino ad ora. Per editarlo aprite una finestra di Terminale ed eseguite:

sudo crontab -e

Ogni utente ha il suo crontab, ma nel nostro caso vogliamo editare quello di sistema quindi usiamo sudo, come mostrato di seguito:

terminal1

Attenzione il crontab si apre con il vostro editor di default quindi nel mio caso vi, se non vi piace potete cambiarlo con quello che usate di solito, in rete trovate sicuramente come fare.
Per spostarvi quindi usate le frecce sulla vostra tastiera e aggiungete la riga:

@reboot python /home/pi/script/scriptEsempio.py &

Come noterete questa stringa è diversa dal formato che usate di solito quando inserite un job, in questo caso diciamo al sistema che ad ogni boot del sistema vogliamo che venga lanciato il nostro script, in questo caso in python, prorprio come se lo stessimo lanciando noi da riga di comando. Il carattere & finale dice a Cron che lo script deve essere eseguito in background e che quindi non deve bloccare la sequenza di avvio.

Dovrebbe essere qualcosa di simile, l’ultima riga è quella che ci interessa il resto lasciate perdere è altra roba che gira:

terminal2

Salvate il tutto, usando i comandi specifici del vostro editor ed uscite. Ora dovreste essere ritornati al prompt dei comandi.

Step 3 – Testing

Per testare il tutto potete provare a riavviare il vostro sistema, quindi inserite:

sudo reboot

Quando ripartirà il vostro sistema dovrebbe lanciare lo script, dipende tutto da cosa fa, ma se il vostro script deve girare sempre e volete controllare se sta girando vi basta eseguire sempre in una finestra di terminale:

ps aux | grep /home/pi/script/scriptEsempio.py

Se il vostro script sta girando verrà fuori qualcosa del tipo:

root 1472 0.0 1.0 35019 4012 ? Sl 23:15 0:00 python /home/pi/script/scriptEsempio.py

Complimenti, ci siete riusciti!
Come al solito se avete i problemi i commenti sono qui per questo e se avete aggiunte e migliorie fatemi sapere.