Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/sh
- #
- # nzbget: Stops/Starts/Restarts a global NZBGet Server
- # chkconfig: 235 20 80
- # Description: Starts the NZBGet Server
- # Author: Chris Caron <lead2gold@gmail.com>
- #
- ### BEGIN INIT INFO
- # Provides: NZBGet Server
- # Required-Start: $network
- # Should-Start: NZBGet Server
- # Required-Stop:
- # Default-Start: 3 5
- # Default-Stop: 0 1 2 6
- # Short-Description: NZBGet Server
- # Description: NZBFile to Usenet Data Miner
- ### END INIT INFO
- [ $UID -eq 0 ] || exit 4
- NZBGET_BIN="/usr/bin/nzbget"
- # Source function library
- if [ -f /etc/rc.status ]; then
- . /etc/rc.status
- rc_reset
- elif [ -f /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
- fi
- # Some Defaults
- RUNUSR=${RUNUSR:=nzbget}
- # Verify user exists (if it doesn't fall back to root user)
- id $RUNUSR &>/dev/null
- [ $? -ne 0 ] && RUNUSR=root
- RUNGRP=${RUNGRP:=$RUNUSR}
- # Source NZBGet Variables
- [ -r /etc/sysconfig/nzbget ] && . /etc/sysconfig/nzbget
- RETVAL=0
- PROG="nzbget"
- # Set lockfile differently if on SuSE
- LOCKFILE="/var/lock/subsys/$PROG"
- PIDFILE="/var/run/$PROG.pid"
- LOGFILE="/var/log/$PROG.log"
- if [ "$RUNUSR" != "root" ]; then
- PIDFILE="/var/run/$RUNUSR/$PROG.pid"
- LOGFILE="/var/log/$RUNUSR/$PROG.log"
- fi
- getpid()
- {
- PID=0
- [ -f $PIDFILE ] && PID=$(<$PID)
- ps -ef $PID &>/dev/null
- if [ $? -eq 0 ]; then
- echo $PID
- return 0
- fi
- PID=$(pidof $NZBGET_BIN 2>/dev/null)
- if [ $? -eq 0 ]; then
- echo $PID
- return 0
- fi
- return 1
- }
- start()
- {
- echo -n "Starting NZBGet: "
- PID=$(getpid)
- if [ $? -eq 0 ]; then
- echo -n "(PID=$PID)"
- success
- echo
- fi
- SU=""
- if [ "$RUNUSR" != "root" ]; then
- # handle non-root directories
- [ ! -d $(dirname $PIDFILE) ] && mkdir -p $(dirname $PIDFILE)
- [ ! -d $(dirname $LOGFILE) ] && mkdir -p $(dirname $LOGFILE)
- chown $RUNUSR.$RUNGRP $(dirname $PIDFILE) &>/dev/null
- chown $RUNUSR.$RUNGRP $(dirname $LOGFILE) &>/dev/null
- SU="su - $RUNUSR -c"
- fi
- $SU "$NZBGET_BIN -D -o 'LockFile=$PIDFILE' -o 'LogFile=$LOGFILE'"
- touch $LOCKFILE &>/dev/null
- success
- }
- stop()
- {
- echo -n "Stoping NZBGet: "
- PID=$(getpid)
- if [ $? -ne 0 ]; then
- success
- echo
- fi
- kill $PID
- rm -f $PIDFILE
- rm -f $LOCKFILE
- success
- echo
- return 0
- }
- check_status ()
- {
- echo -n "Checking NZBGet Server status: "
- status $NZBGET_BIN
- return $?
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- sleep 1
- start
- ;;
- status)
- check_status
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart|status}"
- RETVAL=2
- [ "$1" = 'usage' ] && RETVAL=0
- esac
- exit $RETVAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement