Advertisement
Guest User

NZBGet RC Script

a guest
Mar 11th, 2015
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.76 KB | None | 0 0
  1. #! /bin/sh
  2. #
  3. # nzbget: Stops/Starts/Restarts a global NZBGet Server
  4. # chkconfig:   235 20 80
  5. # Description: Starts the NZBGet Server
  6. # Author: Chris Caron <lead2gold@gmail.com>
  7. #
  8. ### BEGIN INIT INFO
  9. # Provides: NZBGet Server
  10. # Required-Start: $network
  11. # Should-Start: NZBGet Server
  12. # Required-Stop:
  13. # Default-Start: 3 5
  14. # Default-Stop: 0 1 2 6
  15. # Short-Description: NZBGet Server
  16. # Description: NZBFile to Usenet Data Miner
  17. ### END INIT INFO
  18.  
  19. [ $UID -eq 0 ] || exit 4
  20.  
  21. NZBGET_BIN="/usr/bin/nzbget"
  22.  
  23. # Source function library
  24. if [ -f /etc/rc.status ]; then
  25.    . /etc/rc.status
  26.    rc_reset
  27. elif [ -f /etc/rc.d/init.d/functions ]; then
  28.    . /etc/rc.d/init.d/functions
  29. fi
  30.  
  31. # Some Defaults
  32. RUNUSR=${RUNUSR:=nzbget}
  33. # Verify user exists (if it doesn't fall back to root user)
  34. id $RUNUSR &>/dev/null
  35. [ $? -ne 0 ] && RUNUSR=root
  36. RUNGRP=${RUNGRP:=$RUNUSR}
  37.  
  38. # Source NZBGet Variables
  39. [ -r /etc/sysconfig/nzbget ] && . /etc/sysconfig/nzbget
  40.  
  41. RETVAL=0
  42. PROG="nzbget"
  43.  
  44. # Set lockfile differently if on SuSE
  45. LOCKFILE="/var/lock/subsys/$PROG"
  46. PIDFILE="/var/run/$PROG.pid"
  47. LOGFILE="/var/log/$PROG.log"
  48.  
  49. if [ "$RUNUSR" != "root" ]; then
  50.    PIDFILE="/var/run/$RUNUSR/$PROG.pid"
  51.    LOGFILE="/var/log/$RUNUSR/$PROG.log"
  52. fi
  53.  
  54. getpid()
  55. {
  56.    PID=0
  57.    [ -f $PIDFILE ] && PID=$(<$PID)
  58.    ps -ef $PID &>/dev/null
  59.    if [ $? -eq 0 ]; then
  60.       echo $PID
  61.       return 0
  62.    fi
  63.    PID=$(pidof $NZBGET_BIN 2>/dev/null)
  64.    if [ $? -eq 0 ]; then
  65.       echo $PID
  66.       return 0
  67.    fi
  68.    return 1
  69. }
  70.  
  71. start()
  72. {
  73.    echo -n "Starting NZBGet: "
  74.    PID=$(getpid)
  75.    if [ $? -eq 0 ]; then
  76.       echo -n "(PID=$PID)"
  77.       success
  78.       echo
  79.    fi
  80.  
  81.    SU=""
  82.    if [ "$RUNUSR" != "root" ]; then
  83.       # handle non-root directories
  84.       [ ! -d $(dirname $PIDFILE) ] && mkdir -p $(dirname $PIDFILE)
  85.       [ ! -d $(dirname $LOGFILE) ] && mkdir -p $(dirname $LOGFILE)
  86.       chown $RUNUSR.$RUNGRP $(dirname $PIDFILE) &>/dev/null
  87.       chown $RUNUSR.$RUNGRP $(dirname $LOGFILE) &>/dev/null
  88.       SU="su - $RUNUSR -c"
  89.    fi
  90.    $SU "$NZBGET_BIN -D -o 'LockFile=$PIDFILE' -o 'LogFile=$LOGFILE'"
  91.    touch $LOCKFILE &>/dev/null
  92.    success
  93. }
  94.  
  95. stop()
  96. {
  97.    echo -n "Stoping NZBGet: "
  98.    PID=$(getpid)
  99.    if [ $? -ne 0 ]; then
  100.       success
  101.       echo
  102.    fi
  103.  
  104.    kill $PID
  105.    rm -f $PIDFILE
  106.    rm -f $LOCKFILE
  107.    success
  108.    echo
  109.    return 0
  110. }
  111.  
  112. check_status ()
  113. {
  114.    echo -n "Checking NZBGet Server status: "
  115.    status $NZBGET_BIN
  116.    return $?
  117. }
  118.  
  119. case "$1" in
  120.    start)
  121.       start
  122.       ;;
  123.    stop)
  124.       stop
  125.       ;;
  126.    restart)
  127.       stop
  128.       sleep 1
  129.       start
  130.       ;;
  131.    status)
  132.       check_status  
  133.       ;;
  134.    *)
  135.       echo $"Usage: $0 {start|stop|restart|status}"
  136.       RETVAL=2
  137.       [ "$1" = 'usage' ] && RETVAL=0
  138. esac
  139.  
  140. exit $RETVAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement