Visti gli infiniti utilizzi del raspberry pi, puo tornare utile impostare l’avvio automatico di determinati programmi che ci possono interessare.
Questa necessita mi era nata quando dovevo impostare l’avvio di “no-ip” (un servizio che permette di avere un DNS dinamico gratuitamente) allo start up di Raspberry pi.
Ci sono un sacco di modi per eseguire di un comando allo start up in Linux, il mio approccio preferito è quello di creare uno script di inizializzazione in /etc/init.d e registrarlo usando update-rc.d
In questo modo l’applicazione viene avviato e arrestata automaticamente all’avvio e allo spegnimento del sistema.
Ma veniamo alla parte pratica, apriamo il terminale e per creare lo script in /etc/init.d , digitiamo:
sudo nano /etc/init.d/NameOfYourScript
Quello che segue è un esempio basato sull’avvio del servizio no-ip [ situato in /usr /local /bin/noip]:
#! /bin/sh # /etc/init.d/noip ### BEGIN INIT INFO # Provides: noip # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Simple script to start a program at boot # Description: A simple script start / stop a program a boot / shutdown. ### END INIT INFO # If you want a command to always run, put it here # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting noip" # run application you want to start /usr/local/bin/noip2 ;; stop) echo "Stopping noip" # kill application you want to stop killall noip2 ;; *) echo "Usage: /etc/init.d/noip {start|stop}" exit 1 ;; esac exit 0
Attenzione – è importante testare lo script e assicurarsi chel’avvio, non ci sia bisogno di fare l’autenticazione come utente o passaggi che prevedono l’interazione dell’utente come ad essempio fornire una risposta , premere ” y” o simili , perché si possono blocchi che impediscono l’avvio dello script appena creato.
Rendiamo ora lo script eseguibile digitando,sempre da terminale:
sudo chmod 755 /etc/init.d/NameOfYourScript
Proviamo ad avviare lo script con:
sudo /etc/init.d/NameOfYourScript start
e successivamente a stopparlo con:
sudo /etc/init.d/NameOfYourScript stop
Concludiamo registrando lo script per partire all’avvio. Per registrare lo script da eseguire all’avvio e spegnimento , eseguire il seguente comando:
sudo update-rc.d NameOfYourScript defaults
Nel caso si volesse rimuovere l’avvio dello script appena creato bastera digitare:
sudo update-rc.d -f NameOfYourScript remove
Questo è tutto!
Hai altre domande riguardo quanto appena trattato?
Aggiungi un commento qui sotto e vedrai che troverai risposta quanto prima!
ho questo problema, ho eseguito la tua guida, ma invece di noip ho il bisogno di avviare telegram-cli, se lo avvio manualmente con il comando “sudo /etc/init.d/Telegram start” funziona ma non si avvia all’avvio del sistema
questo è il tuo script modificato
#! /bin/sh
# /etc/init.d/noip
### BEGIN INIT INFO
# Provides: noip
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
# Description: A simple script start / stop a program a boot / shutdown.
### END INIT INFO
# If you want a command to always run, put it here
# Carry out specific functions when asked to by the system
case “$1” in
start)
echo “Starting telegram”
# run application you want to start
cd /home/pi/tg && bin/telegram-cli -k tg-server.pub -W -s action.lua
;;
stop)
echo “Stopping telegram”
# kill application you want to stop
killall telegram-cli
;;
*)
echo “Usage: cd /home/pi/tg && bin/telegram-cli -k tg-server.pub -W -s action.lua
{start|stop}”
exit 1
;;
esac
exit 0
stesso problema. tu hai risolto in qualche modo ?
Ho seguito la tua guida per avviare SOPEL automaticamente, ma non si avvia