Mandriva Init Script

#!/bin/bash
#
# Startup script for the deluged daemon
#
# chkconfig: 2345 84 09
#
# description: deluged is the Deluge bit torrent daemon, 
# it performs downloads and manages torrents. 
# Connect to the service through the configured port.
# Script to manage start and stopping the mandriva service
# processname: deluged

### BEGIN INIT INFO
# Provides: deluged
# Should-Start:   $network
# Should-Stop:    $network
# Required-Start: $local_fs
# Required-Stop:  $local_fs
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Short-Description: shadok
# Description: shadok is the Deluge bit torrent daemon,
# it performs downloads and manages torrents. 
# Connect to the service through the configured port.
# Script to manage start and stopping the mandriva service
# processname: deluged
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

# Check that networking is up.
. /etc/sysconfig/network
[ "${NETWORKING}" = "no" ] && exit 0

DAEMON='deluged'
ACCOUNT='deluge'
HOME='/var/share/deluge'
# ----------- naming convention -----------

LOG="/var/log/$DAEMON"
PIDF="/var/run/${DAEMON}.pid"
LOCK="/var/lock/subsys/$DAEMON"
# ----------- basic checks -----------

[ ! -d "${HOME}" ] &&  gprintf "Can't find home %s, exit.\n" "${HOME}" && exit 1
[ -x '/usr/bin/deluged' -a -x '/usr/bin/deluge' ] || exit 0
#

case "$1" in
  daemon_start ) # real start
    [ `id -un` != "$ACCOUNT" ] && [ "$2" != '--test' ] && exit 3

    /usr/bin/deluged -c $HOME/.deluge/  -l $LOG -P $PIDF
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
       /usr/bin/deluge -u web -c $HOME/.deluge/ > $HOME/weluge.log 2>&1  &
       RETVAL=$?
       echo $!  >>  $PIDF
    fi
    ;;
  start)
    gprintf "Starting $DAEMON daemon: "
    touch  $LOG $PIDF
    chown $ACCOUNT:`id -g $ACCOUNT` $LOG $PIDF
    daemon -9 --user=$ACCOUNT --check $DAEMON /bin/ionice -c 3 $0 daemon_start
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch $LOCK
    ;;
  stop | smooth-stop)
    gprintf "Shutting down $DAEMON daemon: "
    [ -r "$PIDF" ] && pid=`cat $PIDF` 2>/dev/null
    #
    # kill first, think later
    #
    kill -TERM $pid >/dev/null 2>&1
    #
    # Saving state takes time: 10 sec
    #
    timeout=10
    for p in $pid ; do
       kill -s 0 $p 2>/dev/null
       for ((  ; 0==$?  && 0<$timeout ; timeout=$timeout - 1 )) do
          echo -n '.'
          sleep 1
          kill -s 0 $p 2>/dev/null
       done
    done
    if [ "$timeout" -eq 0 ] ; then
        failure "%s shutdown" $DAEMON
        kill -KILL $pid >/dev/null 2>&1
        RETVAL=1
    else
        success "%s shutdown" $base
        rm -f $LOCK
        RETVAL=0
    fi
    echo
    ;;
  hard-stop)
    gprintf "Fast stopping $DAEMON daemon: "
    #
    # no time to save state
    #
    killproc -d 1 $DAEMON
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f $LOCK
    ;;
  status)
    status $DAEMON
    RETVAL=$?
    ;;
  restart|reload)
    $0 stop
    $0 start
    ;;
  condrestart)
    [ -f $LOCK ] && $0 restart || status $DAEMON
    ;;
  *)
    gprintf "Usage: %s {start|stop|smooth-stop|hard-stop|status|restart}\n" "$0"
    RETVAL=1
    ;;
esac

exit $RETVAL

Last modified 14 years ago Last modified on 04/07/2010 04:12:22 PM