| Current Path : /etc/rc6.d/ |
| Current File : //etc/rc6.d/K01ProcessController |
#!/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