Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
dmr:dvmega:nutzung_mit_mmdvm_und_bluestack_micro [2016/04/28 11:55] – [Startskript für automatischen Start beim Hochfahren des Raspberry Pi] dg9vh | dmr:dvmega:nutzung_mit_mmdvm_und_bluestack_micro [2016/04/28 22:47] – dg9vh | ||
---|---|---|---|
Zeile 125: | Zeile 125: | ||
starten. | starten. | ||
- | ===== Startskript | + | ===== Watchdogscript |
An dieser Stelle wird es leider jetzt etwas unsauber, da man zunächst mittels | An dieser Stelle wird es leider jetzt etwas unsauber, da man zunächst mittels | ||
Zeile 132: | Zeile 132: | ||
dem MMDVMHost ein " | dem MMDVMHost ein " | ||
- | Hier das Startscript: | + | Hier das Watchdogscript: |
- | #!/bin/bash | + | # |
- | ### BEGIN INIT INFO | + | |
- | # | + | |
- | # Provides: | + | |
- | # Required-Start: | + | |
- | # Required-Stop: | + | |
- | # Default-Start: | + | |
- | # Default-Stop: | + | |
- | # Short-Description: | + | |
| | ||
- | | + | ## Fill in name of program here. |
- | ### END INIT INFO | + | PROG=" |
- | | + | PROG_PATH="/ |
- | PROG=" | + | PROG_ARGS="/ |
- | PROG_PATH="/ | + | PIDFILE="/ |
- | PROG_ARGS="/ | + | USER=" |
- | PIDFILE="/ | + | IP_FOR_TEST=" |
- | USER=" | + | PING_COUNT=5 |
+ | PING="/ | ||
+ | WATCHDOGFILE="/ | ||
+ | runwatchdog=0 | ||
| | ||
- | | + | |
+ | if [ -e $PIDFILE ]; then | ||
+ | ## Program is running, exit with error. | ||
+ | echo "Error! $PROG is currently running!" | ||
+ | exit 1 | ||
+ | else | ||
+ | ## Change from /dev/null to something like / | ||
+ | cd $PROG_PATH | ||
+ | sudo -u $USER / | ||
+ | echo "$PROG started" | ||
+ | sudo touch $PIDFILE | ||
+ | fi | ||
+ | } | ||
| | ||
- | | + | |
- | PING="/bin/ping" | + | |
+ | exit 1 | ||
+ | fi | ||
| | ||
- | | + | if [ ! "$(pidof |
- | | + | |
- | ## Program is running, exit with error. | + | runwatchdog=1 |
- | echo "Error! | + | sudo touch $WATCHDOGFILE |
- | | + | sudo rm $PIDFILE |
- | | + | start |
- | ## Change from /dev/null to something like /var/log/$PROG if you want to save output. | + | fi |
- | | + | |
- | $PING -c $PING_COUNT $IP_FOR_TEST > /dev/null 2> /dev/null | + | |
- | while [ $? -ge 1 ] | + | |
- | do | + | |
- | sleep 1 | + | |
- | $PING -c $PING_COUNT $IP_FOR_TEST > /dev/null 2> /dev/null | + | |
| | ||
- | done | + | sleep 10 |
| | ||
- | sudo -u $USER /usr/bin/stdbuf | + | counter=`tail |
- | echo "$PROG started" | + | |
- | touch $PIDFILE | + | |
- | fi | + | |
- | } | + | |
| | ||
- | | + | if [ $counter |
- | | + | |
- | ## Program is running, so stop it | + | |
- | echo "$PROG is running" | + | sudo touch $WATCHDOGFILE |
- | rm -f $PIDFILE | + | killall $PROG |
- | | + | sudo rm $PIDFILE |
- | echo "$PROG stopped" | + | start |
- | else | + | fi |
- | ## Program is not running, exit with error. | + | |
- | echo " | + | |
- | exit 1 | + | |
- | | + | |
- | } | + | |
| | ||
- | | + | if [ $runwatchdog |
- | ## Found at http:// | + | |
- | | + | sudo rm $WATCHDOGFILE |
- | echo "This script must be run as root" 1>& | + | |
- | exit 1 | + | |
fi | fi | ||
| | ||
- | case " | ||
- | start) | ||
- | start | ||
- | exit 0 | ||
- | ;; | ||
- | stop) | ||
- | stop | ||
- | exit 0 | ||
- | ;; | ||
- | reload|restart|force-reload) | ||
- | stop | ||
- | sleep 2 | ||
- | start | ||
- | exit 0 | ||
- | ;; | ||
- | **) | ||
- | echo " | ||
- | exit 1 | ||
- | ;; | ||
- | esac | ||
exit 0 | exit 0 | ||
### END | ### END | ||
- | Dieses Script als /etc/init.d/mmdvm.sh abspeichern und mit | + | Dieses Script als /home/pi/scripts/ |
- | sudo chkconfig mmdvm.sh on | + | |
- | aktivieren. | + | '' |
+ | |||
+ | Damit wird im Minutentakt das Script aufgerufen. |