blob: ca99c96369d4b888f267c1de5141ebd8a05073ef [file] [log] [blame]
#!/bin/sh
#
# chkconfig: 2345 31 41
# description: Scalable Communication Infrastructure (SCI) Service Daemon
#
### BEGIN INIT INFO
# Provides: IBM
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: start/stop/restart scid daemon service
# Description: Scalable Communication Infrastructure
# (SCI) Service Daemon, it's a daemon needed when initializing
# SCI sessions.
# pidfile: /var/run/scidv1.pid
### END INIT INFO
if [[ -a /etc/redhat-release ]] ; then
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 1
fi
# Avoid using root's TMPDIR
unset TMPDIR
RETVAL=0
start() {
KIND="SCI"
echo -n $"Starting $KIND services: "
daemon scidv1
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/sciv1 || \
RETVAL=1
return $RETVAL
}
stop() {
KIND="SCI"
echo -n $"Shutting down $KIND services: "
killproc scidv1
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sciv1
echo ""
return $RETVAL
}
restart() {
stop
start
}
rhstatus() {
status scidv1
RETVAL=$?
if [ $RETVAL -ne 0 ] ; then
return $RETVAL
fi
}
# Allow status as non-root.
if [ "$1" = status ]; then
rhstatus
exit $?
fi
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
rhstatus
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 2
esac
exit $?
elif [[ -a /etc/SuSE-release ]] ; then
SCID_BIN="/usr/sbin/scidv1"
PID_FILE="/var/run/scidv1.pid"
LOG_FILE="/tmp/*.scidv1.log.*"
. /etc/rc.status
rc_reset
# Check for missing binary
if [ ! -x ${SCID_BIN} ]; then
echo -n >&2 "SCI daemon, ${SCID_BIN} is not installed. "
rc_status -s
exit 5
fi
case "$1" in
start)
echo -n "Starting SCI daemon "
checkproc -p ${PID_FILE} ${SCID_BIN}
case $? in
0) echo -n "- Warning: daemon already running. " ;;
1) echo -n "- Warning: ${PID_FILE} exists. " ;;
esac
rm -f ${LOG_FILE} >/dev/null 2>&1
startproc -p ${PID_FILE} ${SCID_BIN}
rc_status -v
;;
stop)
echo -n "Shutting down SCI daemon "
checkproc -p ${PID_FILE} ${SCID_BIN} || \
echo -n " Warning: daemon is not running. "
killproc -p ${PID_FILE} -t 10 ${SCID_BIN}
rc_status -v
;;
restart)
$0 stop
$0 start
rc_status
;;
status)
echo -n "Checking for SCI daemon "
checkproc -p ${PID_FILE} ${SCID_BIN}
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
rc_exit
elif [[ -d /usr/share/ubuntu-docs ]] ; then
test -f /usr/sbin/scidv1 || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_begin_msg "Starting SCI service daemon..."
start-stop-daemon --start --quiet --pidfile /var/run/scidv1.pid --name scidv1 --startas /usr/sbin/scidv1
log_end_msg $?
;;
stop)
log_begin_msg "Stopping SCI service daemon..."
start-stop-daemon --stop --quiet --pidfile /var/run/scidv1.pid --name scidv1
log_end_msg $?
;;
restart)
log_begin_msg "Restarting SCI service daemon..."
start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/scidv1.pid --name scidv1
start-stop-daemon --start --quiet --pidfile /var/run/scidv1.pid --name sci --startas /usr/sbin/scidv1
log_end_msg $?
;;
*)
log_success_msg "Usage: $0 start|stop|restart"
exit 1
;;
esac
exit 0
else
echo "Error: requires Redhat, SUSE or Ubuntu"
exit 1
fi