Spesso nelle distribuzioni linux che adoperiamo per la gestione dei ponti ripetitori e degli hotspot digitali ci capita di dover aggiungere un programma o script all’avvio del sistema. Molteplici sono le possibilità offerte dal sistema operativo linux, dipendenti anche dal tipo di desktop grafico utilizzato o dalla distribuzione in uso. Vediamo alcune configurazioni che potremo definire “nello standard” per avviare al boot un nostro script o programma ricordandoci appunto che non sono le uniche possibili.
Usiamo rc.local inserendo la chiamata allo script
Il file di sistema “rc.local” viene elaborato all’avvio del sistema operativo linux. Possiamo inserire, editando il file con il seguente comando “sudo nano /etc/rc.local“, la chiamata allo script (o programma) che ci interessa avviare, avendo cura di inserire quanto necessario prima dell’istruzione “exit 0” che chiude il processo di elaborazione. Una serie di istruzioni o semplicemente una chiamata ad uno script (che ha i permessi di esecuzione) che abbiamo creato appositamente contenente le istruzioni da eseguire. Importante: se l’esecuzione del nostro programma non deve terminare ma “rimanere in background” allora dovremo far seguire la chiamata (dopo il nome del comando/script, nella stessa riga) con il comando “&” che permette l’esecuzione del processo in background e procede con l’elaborazione delle righe di comandi seguenti.
La directory init.d ed i file di avvio
La directory “/etc/init.d” contiene i file che devono essere avviati al boot del sistema. Copiamo quindi il nostro script in questa directory avendo cura di editarlo (ad esempio “sudo nano /etc/init.d/sample.py”) inserendo le seguenti righe (ad inizio script) necessarie per la corretta elaborazione secondo lo standard Linux Standard Base (LSB) (A standard for software system). Modificare ove necessario alla proprie esigenze:
BEGIN INIT INFO
# Provides: sample.py
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
Ricordiamoci che lo script deve avere i permessi di esecuzione ( +x ) che possiamo dare, ad esempio, con “sudo chmod +x sample.py“. Inoltre dobbiamo indicare al sistema di aggiornare quello che dovrà fare al boot, con il comando “sudo update-rc.d sample.py defaults“.
Avviare una applicazione con il desktop grafico
Supponendo di dover gestire una applicazione grafica che debba essere avviata sempre (e non solo al login di un certo utente) allo startup, si può procedere con il seguente comando “sudo nano /etc/xdg/lxsession/LXDE-pi/autostart” che edita il file contenente l’elenco delle applicazioni “grafiche” da eseguire (il percorso contenente tale file può differire). Il file è così composto, ogni riga una applicazione:
@lxpanel –profile LXDE
@pcmanfm –desktop –profile LXDE
@lxterminal
@leafpad
@xscreensaver -no-splash@
Aggiungere quindi l’applicazione (che sarà presente nel path del sistema o nelle directory preposte) facendone precedere il nome dal carattere “@”. Oppure, forse più semplicemente, possiamo creare un file che il sistema, riconoscendolo come “desktop”, lo eseguirà nell’ambiente grafico. Entriamo nella directory di sistema con “cd /etc/xdg/autostart” (anche in questo caso il percorso può differire a seconda dell’ambiente grafico utilizzato, ad esempio “/home/pi/Desktop”) e procediamo col creare un nuovo file che avrà l’estensione .desktop (obbligatoriamente). Quindi “sudo nano /etc/xdg/autostart/miofile.desktop“. Questo file dovrà seguire una specifica sintassi iniziando sempre con [Desktop Entry]:
[Desktop Entry]
Name=Nome applicazione
Exec=sudo nomefiledaeseguire
Type=application
Terminal=false
[ratings]