En eko-enhet med hjälp av C.H.I.P. $9 datorn (5 / 11 steg)
Steg 5: Automatisera programvara och uppstart
För att få python kod körs automatiskt måste du ställa in den för att köra på stöveln. Jag använde ett skript i /etc/init.d åstadkomma detta.
Följande skript kan du stoppa, starta och starta om Alexa tjänstprogrammet python. Se skriften innehållet för syntax för att göra detta.
Obs: med hjälp av skriptet startar Python koden automatiskt när du använder power på rutan och Alexa kan kommas åt utan att behöva starta den på annat sätt.
Nedan är den kod som ska kopieras till /etc/init.d som /etc/init.d/alexa-service.sh,
#! / bin/sh
### BÖRJA INIT INFORMATION
# Innehåller: alexa-service
# Krävs-Start: $remote_fs $syslog
# Krävs-Stop: $remote_fs $syslog
# Standard-Start: 2 3 4 5
# Standard-Stop: 0 1 6
# Kort-beskrivning: enkla skript för att starta en Alexa Service program vid uppstart
# Beskrivning: Ett enkelt skript som kommer att starta / stoppa ett program en boot / avstängning.
### AVSLUTA INIT INFO
#
WORKDIR = / hem/chip/AlexaCHIP
progname="/Home/chip/AlexaCHIP/setup_alexa.sh"
Start() {
ECHO "Starta tjänsten..."
CD $workdir
/Home/chip/AlexaCHIP/setup_gpio.sh
$progname
}
Stop() {
PID = "ps-ef | grep '[p] ython3 main.py' | awk "{skriva ut $2}''
ECHO $pid
Kill $pid
sova 2
ECHO "Server dödade".
}
fallet "$1" i
Start)
Start
;;
Stop)
Stanna
;;
starta om)
Stanna
Start
;;
*)
ECHO "användning: /etc/init.d/alexa-service {start|stop|restart}"
utgång 1
;;
ESAC
utgång 0
När du kopierar ovanstående skript till /etc/init.d som /etc/init.d/alexa-service.sh, gör följande:
Göra skriptet körbart:
sudo chmod 755 /etc/init.d/Alexa-service.sh
Registrera skript som ska köras vid start:
sudo uppdatera-rc.d alexa-service.sh standardvärden
Om du någonsin vill ta bort skriptet från Start, kör du följande kommando: "sudo uppdatera-rc.d-f alexa-service.sh ta bort"
Installationsskriptet: "setup_alexa.sh" script, används och refrerenced i ovanstående startskriptet, är vad jag brukade hålla python kod som körs kontinuerligt. Jag skapade den för att anropa kommandot "python3 main.py" felsöka koden först. Det hjälpte mig hantera ville jag köra och göra vissa felsökning. När jag inte använder det, det fanns alltför många gånger där det fanns fel som stoppat koden utan svar från Alexa, även om det skulle fungera som det ska när det svarade. Dessa fel tenderade att vara kommunikation eller programvaruproblem jag misstänker, så skriptet "setup_alexa.sh" får mig att hålla det igång. Detta är inte den bästa lösningen men det fungerar, och håller tjänsten körs för mig. Det kör bara åter koden igen om ett fel uppstod.
Nedan visas innehållet i skriptet "setup_alexa.sh":
#! / bin/bash
PROGNAME = "sudo python3 main.py"
CD /home/chip/AlexaCHIP
# Kör koden till CTRL-C
medan [$? - ne 130]; göra
$PROGNAME
sova 5
gjort
avsluta $?