Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
dmr:dv4mini:automatischer_neustart_der_dv_serial_auf_einem_banana_pi_pro [2015/12/03 19:06] dg9vhdmr:dv4mini:automatischer_neustart_der_dv_serial_auf_einem_banana_pi_pro [2015/12/21 15:17] (aktuell) dg9vh
Zeile 1: Zeile 1:
 ====== Automatischer Neustart der dv_serial auf einem Banana Pi Pro ====== ====== Automatischer Neustart der dv_serial auf einem Banana Pi Pro ======
 +===== Warum diese Skripte? =====
 +Manchmal kann es unter verschiedenen Umständen zum Absturz der dv_serial kommen. Die Ursachen können vielfältig sein und werden hier nicht näher beleuchtet. Um dieses Problem zumindest automatisch zu beheben, sind nachstehende Scripte entstanden.
 +
 ===== Voraussetzungen ===== ===== Voraussetzungen =====
 Das Script setzt voraus, dass die dv_serial unter /home/bananapi/DV4mini Das Script setzt voraus, dass die dv_serial unter /home/bananapi/DV4mini
Zeile 9: Zeile 12:
 /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 bananapi /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