Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
dmr:dv4mini:automatischer_neustart_der_dv_serial_auf_einem_banana_pi_pro [2015/12/03 19:04] – [Skripte] dg9vhdmr:dv4mini:automatischer_neustart_der_dv_serial_auf_einem_banana_pi_pro [2015/12/10 08:33] 84.58.88.88
Zeile 9: Zeile 9:
 /etc/init.d/dv_serial.sh /etc/init.d/dv_serial.sh
  
-      #!/bin/bash 
-      ### BEGIN INIT INFO 
-      # 
-      # Provides:             dv_serial 
-      # Required-Start:       $remote_fs 
-      # Required-Stop:        $remote_fs 
-      # Default-Start:        2 3 4 5 
-      # Default-Stop:         0 1 6 
-      # Short-Description:    dv_serial initscript 
-       
-      # 
-      ### END INIT INFO 
-      ## Fill in name of program here. 
-      PROG="dv_serial" 
-      PROG_PATH="/home/bananapi/DV4mini/" 
-      PROG_ARGS="" 
-      PIDFILE="/var/run/dv_serial.pid" 
-       
-      start() { 
-            if [ -e $PIDFILE ]; then 
-                ## Program is running, exit with error. 
-                echo "Error! $PROG is currently running!" 1>&2 
-                exit 1 
-            else 
-               cd $PROG_PATH 
-               sudo -u pi /usr/bin/stdbuf -i0 -o0 -e0 ./$PROG $PROG_ARGS 2>&1 >> /var/log/dv_serial.log &    
-               echo "$PROG started"  
-               touch $PIDFILE  
-               sleep 2  
-               ionice --class 1 --pid="$(pidof dv_serial)"  
-               renice -10 --pid "$(pidof dv_serial)" fi 
-      } 
-       
-      stop() { 
-            if [ -e $PIDFILE ]; then 
-                ## Program is running, so stop it 
-               echo "$PROG is running" 
-               rm -f $PIDFILE 
-               killall $PROG 
-               echo "$PROG stopped" 
-            else 
-                ## Program is not running, exit with error. 
-                echo "Error! $PROG not started!" 1>&2 
-                exit 1 
-            fi 
-      } 
-       
-      ## Check to see if we are running as root first. 
-      ## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html  
-      if [ "$(id -u)" != "0" ];  
-            then echo "This script must be run as root" 1>&2 
-            exit 1 
-      fi 
-      case "$1" in 
-            start) 
-                start 
-                exit 0 
-            ;; 
-            stop) 
-                stop 
-                exit 0 
-            ;; 
-            reload|restart|force-reload) 
-                stop 
-                sleep 2 
-                start 
-                exit 0 
-            ;; 
-            **) 
-                echo "Usage: $0 {start|stop|reload}" 1>&2 
-                exit 1 
-            ;; 
-      esac 
-      exit 0 
-       
-      ### END 
  
 + #!/bin/bash
 + ### BEGIN INIT INFO
 + #
 + # Provides:             dv_serial
 + # Required-Start:       $remote_fs
 + # Required-Stop:        $remote_fs
 + # Default-Start:        2 3 4 5
 + # Default-Stop:         0 1 6
 + # Short-Description:    dv_serial initscript
 +
 + #
 + ### END INIT INFO
 + ## Fill in name of program here.
 + PROG="dv_serial"
 + PROG_PATH="/home/bananapi/DV4mini/"
 + PROG_ARGS=""
 + PIDFILE="/var/run/dv_serial.pid"
 + USER="bananapi"
 +
 + start() {
 +       if [ -e $PIDFILE ]; then
 +           ## Program is running, exit with error.
 +           echo "Error! $PROG is currently running!" 1>&2
 +           exit 1
 +       else
 +           ## Change from /dev/null to something like /var/log/$PROG if you want to save output.
 +           cd $PROG_PATH
 +           echo "******* RESTART of dv_serial *******" >> /var/log/dv_serial.log
 +           sudo -u $USER /usr/bin/stdbuf -i0 -o0 -e0 ./$PROG $PROG_ARGS 2>&1 >> /var/log/dv_serial.log &
 +           echo "$PROG started"
 +           touch $PIDFILE
 +           sleep 2
 +           ionice --class 1 --pid="$(pidof dv_serial)"
 +           renice -10 --pid "$(pidof dv_serial)"
 +       fi
 + }
 +
 + stop() {
 +       if [ -e $PIDFILE ]; then
 +           ## Program is running, so stop it
 +          echo "$PROG is running"
 +          rm -f $PIDFILE
 +          killall $PROG
 +          echo "$PROG stopped"
 +       else
 +           ## Program is not running, exit with error.
 +           echo "Error! $PROG not started!" 1>&2
 +           exit 1
 +       fi
 + }
 +
 + ## Check to see if we are running as root first.
 + ## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html
 + if [ "$(id -u)" != "0" ]; then
 +       echo "This script must be run as root" 1>&2
 +       exit 1
 + fi
 +
 + case "$1" in
 +       start)
 +           start
 +           exit 0
 +       ;;
 +       stop)
 +           stop
 +           exit 0
 +       ;;
 +       reload|restart|force-reload)
 +           stop
 +           sleep 2
 +           start
 +           exit 0
 +       ;;
 +       **)
 +           echo "Usage: $0 {start|stop|reload}" 1>&2
 +           exit 1
 +       ;;
 + esac
 + exit 0
 + ### END
  
  
Zeile 119: Zeile 123:
 quasi 2 mal in der Minute (nach einer Pause von 30 Sekunden) prüft, ob quasi 2 mal in der Minute (nach einer Pause von 30 Sekunden) prüft, ob
 der Prozess noch vorhanden ist... es wird also automatisch nach dem der Prozess noch vorhanden ist... es wird also automatisch nach dem
-Start die dv_serial gestartet über den Watchdog...+Start die dv_serial gestartet über den Watchdog. 
 +===== Abschließendes ===== 
 +Möchte man das Script auf einem Raspberry Pi einsetzen, ist der Installationspfad und der Benutzer des Programmaufrufs auf "pi" anzupassen (also die Stellen, wo bananapi steht, durch pi ersetzen).