Your IP : 216.73.217.142


Current Path : /etc/rc3.d/
Upload File :
Current File : //etc/rc3.d/S02ProcessController

#!/bin/sh
#
# Copyright (c) 2010-2013 IASO Backup Technology. All rights reserved.
#
# chkconfig: 2345 90 10
# description: Keeps track of 1UND1-EU backup services
# processname: ProcessController
# pidfile: /opt/1UND1EU/var/run/ProcessController.pid
#
### BEGIN INIT INFO
# Provides: ProcessController
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Keeps track of 1UND1-EU backup services
### END INIT INFO

# prLocation /opt/1UND1EU

## general settings

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
NAME="ProcessController"
DAEMON="/opt/1UND1EU/bin/$NAME"
# CFGFILE="/opt/1UND1EU/etc/$NAME.config"
PIDFILE="/opt/1UND1EU/var/run/$NAME.pid"
DOARGS=1

## general actions

[ -x "$DAEMON" ] || exit 0
# [ -r "$CFGFILE" ] || exit 0

export PIDFILE

LC_ALL=C
export LC_ALL || true

## daemon control function

# Gentoo
daemon_ctl_ssd()
{
    case "$1" in
        start)
            start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON"
            ;;
        stop)
            start-stop-daemon --stop --quiet --oknodo --retry=TERM/0/30/KILL/5 --pidfile "$PIDFILE"
            ;;
        reload)
            start-stop-daemon --stop --signal 1 --quiet --pidfile "$PIDFILE" --exec "$DAEMON"
            ;;
    esac
}

# RadHat, Fedora, CentOS
daemon_ctl_redhat()
{
    case "$1" in
        start)
            daemon "$DAEMON"
            ;;
        stop)
            killproc "$DAEMON"
            ;;
        reload)
            killproc "$DAEMON" -HUP
            ;;
    esac
}

# LSB-compatible (Debian, Ubuntu, SuSE)
daemon_ctl_lsb()
{
    local _retval=0
    case "$1" in
        start)
            start_daemon -p "$PIDFILE" "$DAEMON" || _retval="$?"
            ;;
        stop)
            killproc -p "$PIDFILE" "$DAEMON" || _retval="$?"
            sleep 1
            ;;
        reload)
            killproc -p "$PIDFILE" "$DAEMON" -HUP || _retval="$?"
            ;;
    esac
    return $_retval
}

# all others
daemon_ctl_simple()
{
    case "$1" in
        start)
            [ -r "$PIDFILE" ] && return 0
            "$DAEMON"
            ;;
        stop)
            [ -r "$PIDFILE" ] || return 0
            kill -TERM `cat "$PIDFILE"`
            ;;
        reload)
            [ -r "$PIDFILE" ] || return 0
            kill -HUP `cat "$PIDFILE"`
            ;;
    esac
}

## log control functions

# Gentoo
log_ctl_gentoo()
{
    case "$1" in
        begin)
            ebegin "$2"
            ;;
        end)
            eend "$2"
            ;;
    esac
}

# Redhat, Fedora, CentOS
log_ctl_redhat()
{
    case "$1" in
        begin)
            echo -n "$2 "
            ;;
        end)
            if [ "$2" -eq 0 ]; then
                success
            else
                failure
            fi
            echo
            ;;
    esac
}

# LSB-compatible (Debian, Ubuntu, SuSE)
log_ctl_lsb()
{
    case "$1" in
        begin) 
            log_daemon_msg "$2" 2>/dev/null
            [ $? -ne 0 ] && echo -n "$2"
            ;;
        end)
            if [ "$2" -eq 0 ]; then
                log_success_msg
            else
                log_failure_msg
            fi
            ;;
    esac
}

# all others
log_ctl_simple()
{
    case "$1" in
        begin)
            echo -n "$2 "
            ;;
        end)
            if [ "$2" -eq 0 ]; then
                echo "[ OK ]"
            else
                echo "[FAIL]"
            fi
            ;;
    esac
}

## distro detection

if [ -e "/etc/lsb-release" -o -e "/etc/SuSE-release" -o -e "/etc/debian_version" ]; then
    . "/lib/lsb/init-functions"
    daemon_ctl=daemon_ctl_lsb
    log_ctl=log_ctl_lsb
elif [ -e "/etc/redhat-release" -o -e "/etc/fedora-release" ]; then
    [ -e "/etc/init.d/functions" ] && . "/etc/init.d/functions" || . "/etc/rc.d/init.d/functions"
    daemon_ctl=daemon_ctl_redhat
    log_ctl=log_ctl_redhat
elif [ -e "/etc/gentoo-release" ]; then
    [ "$(basename "$0" '.sh')" != "runscript" ] && exec "/sbin/runscript" "$0" "$@"
    [ -e "/etc/init.d/functions.sh" ] && . "/etc/init.d/functions.sh" || . "/lib/rc/sh/rc-functions.sh"
    daemon_ctl=daemon_ctl_ssd
    log_ctl=log_ctl_gentoo
    opts="reload zap"
    DOARGS=0
else
    daemon_ctl=daemon_ctl_simple
    log_ctl=log_ctl_simple
fi

## controlling functions

depend()
{
    need net
    provide ProcessController
}

start()
{
    $log_ctl begin "Starting $NAME"
    $daemon_ctl start
    RETVAL=$?
    $log_ctl end $RETVAL
    return $RETVAL
}

stop()
{
    RETVAL=0
    if [ -e "$PIDFILE" ]; then
        $log_ctl begin "Stopping $NAME"
        $daemon_ctl stop
        RETVAL=$?
        $log_ctl end $RETVAL
        rm -f "$PIDFILE"
    fi
    return $RETVAL
}

reload()
{
    RETVAL=0
    if [ -e "$PIDFILE" ]; then
        $log_ctl begin "Reloading $NAME configuration"
        $daemon_ctl reload
        RETVAL=$?
        $log_ctl end $RETVAL
    fi
    return $RETVAL
}

zap()
{
    $log_ctl begin "Zapping $NAME"
    rm -f "$PIDFILE" >/dev/null 2>&1
    $log_ctl end 0
    return 0
}

## command-line processor

if [ "$DOARGS" -ne 0 ]; then
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
            reload
            ;;
        zap)
            zap
            ;;
        *)
            echo "Usage: $0 {start|stop|restart|reload|zap}" >&2
            exit 1
            ;;
    esac
fi