Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #
- # Copyright (C) 2008-2011 by JCF Ploemen <linux@jp.pp.ru>
- # released under GPL, version 2 or later
- ################################################
- # #
- # TO CONFIGURE EDIT /etc/default/sabnzbdplus #
- # #
- ################################################
- ### BEGIN INIT INFO
- # Provides: sabnzbdplus
- # Required-Start: $local_fs $network $remote_fs
- # Required-Stop: $local_fs $network $remote_fs
- # Should-Start: NetworkManager
- # Should-Stop: NetworkManager
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: SABnzbd+ binary newsgrabber
- # Description: SABnzbd+ is a web-based binary newsgrabber with nzb
- # support, designed to download files from Usenet.
- # This script provides that functionality as a system
- # service, starting the program on boot.
- ### END INIT INFO
- DAEMON=/usr/bin/sabnzbdplus
- SETTINGS=/etc/default/sabnzbdplus
- ([ -x $DAEMON ] && [ -r $SETTINGS ]) || exit 0
- DESC="SABnzbd+ binary newsgrabber"
- DEFOPTS="--daemon"
- PYTHONEXEC="^$(sed -n '1s/^#\!\([a-z0-9\.\/]\+\)\(.*\)/\1(\2)?/p' $DAEMON)"
- PIDFILE=/var/run/sabnzbdplus.pid
- SETTINGS_LOADED=FALSE
- # these are only accepted from the settings file
- unset USER CONFIG HOST PORT EXTRAOPTS
- . /lib/lsb/init-functions
- check_retval() {
- if [ $? -eq 0 ]; then
- log_end_msg 0
- return 0
- else
- log_end_msg 1
- exit 1
- fi
- }
- is_running() {
- # returns 0 when running, 1 otherwise
- PID="$(pgrep -f -x -u ${USER%:*} "$PYTHONEXEC $DAEMON $DEFOPTS.*")"
- RET=$?
- [ $RET -gt 1 ] && exit 1 || return $RET
- }
- load_settings() {
- if [ $SETTINGS_LOADED != "TRUE" ]; then
- . $SETTINGS
- [ -z "$USER" ] && {
- log_warning_msg "$DESC: not configured, aborting. See $SETTINGS";
- return 1; }
- [ -z "${USER%:*}" ] && exit 1
- OPTIONS="$DEFOPTS"
- [ -n "$CONFIG" ] && OPTIONS="$OPTIONS --config-file $CONFIG"
- [ -n "$HOST" ] && SERVER="$HOST" || SERVER=
- [ -n "$PORT" ] && SERVER="$SERVER:$PORT"
- [ -n "$SERVER" ] && OPTIONS="$OPTIONS --server $SERVER"
- [ -n "$EXTRAOPTS" ] && OPTIONS="$OPTIONS $EXTRAOPTS"
- SETTINGS_LOADED=TRUE
- fi
- return 0
- }
- start_sab() {
- load_settings || exit 0
- if ! is_running; then
- log_daemon_msg "Starting $DESC"
- start-stop-daemon --quiet --chuid $USER --start --exec $DAEMON -- $OPTIONS
- check_retval
- # create a pidfile; we don't use it but some monitoring app likes to have one
- [ -w $(dirname $PIDFILE) ] && \
- pgrep -f -x -n -u ${USER%:*} "$PYTHONEXEC $DAEMON $OPTIONS" > $PIDFILE
- else
- log_success_msg "$DESC: already running (pid $PID)"
- fi
- }
- stop_sab() {
- load_settings || exit 0
- if is_running; then
- TMPFILE="$(mktemp --tmpdir sabnzbdplus.XXXXXXXXXX)"
- [ $? -eq 0 ] || exit 1
- trap '[ -f "$TMPFILE" ] && rm -f "$TMPFILE"' EXIT
- echo "$PID" > "$TMPFILE"
- log_daemon_msg "Stopping $DESC"
- start-stop-daemon --stop --user ${USER%:*} --pidfile "$TMPFILE" --retry 30
- check_retval
- else
- log_success_msg "$DESC: not running"
- fi
- [ -f $PIDFILE ] && rm -f $PIDFILE
- }
- case "$1" in
- start)
- start_sab
- ;;
- stop)
- stop_sab
- ;;
- force-reload|restart)
- stop_sab
- start_sab
- ;;
- status)
- load_settings || exit 4
- if is_running; then
- log_success_msg "$DESC: running (pid $PID)"
- else
- log_success_msg "$DESC: not running"
- [ -f $PIDFILE ] && exit 1 || exit 3
- fi
- ;;
- *)
- log_failure_msg "Usage: $0 {start|stop|restart|force-reload|status}"
- exit 3
- ;;
- esac
- exit 0
Add Comment
Please, Sign In to add comment