ich versuche seit Tagen ein vernünftiges Startscript für ein von mir erstelles Bash-Script zu erstellen.
Mein Bash Script soll ein paar GPIO-Aufgaben in zusammenhang mit lirc übernehmen und immer im Hintergrund laufen. Hier ein Auszug aus dem Script (ich habe wiringPI (https://projects.drogon.net/raspberry-pi/wiringpi/) installiert):
Code: Select all
#!/bin/bash
while [ true ]
do
myVar1=`gpio read 0`
echo $myVar1
if [ $myVar1 == 0 ]; then
gpio write 1 1
fi
sleep 3
done
Nun wollte ich ein init-Script erstellen, um bei Systemstart mein Script auch mit auszuführen. Da komme ich allerdings nicht weiter...
So habe ich es jetzt versucht zu lösen:
Code: Select all
#!/bin/sh
### BEGIN INIT INFO
# Provides: ir
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start:
# Should-Stop:
# Short-Description: Startet die GPIO Verwaltung
### END INIT INFO
#automatisch starten:
#update-rc.d startscript defaults
#update-rc.d -f startscript remove
DAEMON=/root/ir/demo.sh
SCRIPTNAME=demo.sh
PARAMS=""
#LOGFILE=/var/log/ir.log
start() {
ps -e | grep $SCRIPTNAME
if [ "$?" -eq 0 ]; then
echo "Läuft bereits."
else
echo -n "starting up $DAEMON\n"
#start-stop-daemon --start --oknodo --user root --name root --pidfile /var/run/ir.pid --startas /root/ir/auto.sh --background
RUN=`cd / && $DAEMON $PARAMETERS > /root/ir/log.txt 2>&1 &`
if [ "$?" -eq 0 ]; then
echo "Done."
else
echo "FAILED."
fi
fi
}
stop() {
killall $SCRIPTNAME
}
status() {
ps -e | grep $SCRIPTNAME
#echo $myvar
#killall -0 $DAEMON
#echo $?
if [ "$?" -eq 0 ]; then
echo "Running."
else
echo "Not Running."
fi
}
case "$1" in
start)
start
;;
restart)
stop
sleep 1
start
;;
stop)
stop
;;
status)
status
;;
*)
echo "usage : $0 start|restart|stop|status"
;;
esac
exit 0
Code: Select all
RUN=`cd / && $DAEMON $PARAMETERS > /root/ir/log.txt 2>&1 &`
Boote ich jedoch neu, erhalte ich in der log folgende Einträge:
Code: Select all
/root/ir/demo.sh: line 6: [: ==: unary operator expected
/root/ir/demo.sh: line 4: gpio: command not found
Ich habe es auch mit dem start-stop-daemon probiert...aber auch hier komme ich einfach nicht weiter...das script läuft...aber hat vermutlich die gleichen Probleme mit den Rechten?
Was mache ich falsch?
Gruß
Bismosa