Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.71 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. NAME=ipv6daemon
  4. PIDFILE=$NAME.pid
  5. INT_WAN=ppp0
  6. WAN_IP=$(ip addr show $INT_WAN | awk '/inet/ {print $2}')
  7.  
  8. case "$1" in
  9.     start)
  10.         echo "Starting ipv6update service"
  11.        
  12.         if [ ! -r "$PIDFILE" ]; then
  13.    
  14.         exec >/dev/null
  15.         exec 2>/dev/null
  16.  
  17.         (
  18.                 trap "" TERM
  19.         echo ${BASHPID} > "$NAME".pid
  20.  
  21.                 ./ipv6update
  22.  
  23.                 while true
  24.                 do
  25.                         IP_ADDR=$(ip addr show $INT_WAN | awk '/inet/ {print $2}')
  26.                         if [ "$IP_ADDR" != "$WAN_IP" ]; then
  27.                         WAN_IP="$IP_ADDR"
  28.                         ./ipv6update
  29.                         fi
  30.                 sleep 60
  31.                 done
  32.                 )&
  33.    
  34.         fi
  35.         if read pid < "$PIDFILE" && ps -p "$pid" > /dev/null 2>&1; then
  36.             echo "$NAME allready is running $pid"
  37.             exit 0
  38.         else
  39.             echo "$NAME is not running but $PIDFILE exists."
  40.             exit 1
  41.         fi
  42.         ;;
  43.     stop)
  44.         echo "Stopping ipv6update service"
  45.         if [ ! -r "$PIDFILE" ]; then
  46.             echo "$NAME is not running."
  47.             exit 3
  48.         fi
  49.         if read pid < "$PIDFILE" && kill -9 "$pid" > /dev/null 2>&1 && rm "$PIDFILE"; then
  50.             echo "$NAME is stopping."
  51.             exit 0
  52.         else
  53.             echo "$NAME is not running but $PIDFILE exists."
  54.             exit 1
  55.         fi
  56.         ;;
  57.     restart)
  58.             $0 stop
  59.             sleep 2
  60.             $0 start
  61.         ;;
  62.     status)
  63.         echo -n "Status of $NAME: "
  64.         if [ ! -r "$PIDFILE" ]; then
  65.             echo "$NAME is not running."
  66.             exit 3
  67.         fi
  68.         if read pid < "$PIDFILE" && ps -p "$pid" > /dev/null 2>&1; then
  69.             echo "$NAME is running $pid"
  70.             exit 0
  71.         else
  72.             echo "$NAME is not running but $PIDFILE exists."
  73.             exit 1
  74.         fi
  75.         ;;
  76.     *)
  77.         echo "$0 Usage: start|stop|restart|status" >&2
  78.         exit 3
  79.     ;;
  80. esac
  81.  
  82. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement