b60b392c |
#!/bin/sh
#
# makuosan Multicasts All-Kinds of Updating Operation for Servers on Administered Network
#
# Copyright (C) 2008 by KLab Inc.
#
# chkconfig: 99 01
# description: Makuosan(MAKUO for short) is a software \
# which transfer files to multiple servers simultaneously \
# using UDP multicast.
# (MAKUO consists of makuosan daemon and command line utility msync.\
# The makuosan should be run on every server in a cluster. \
# The makuo talk to makuosan daemon.)
#
# processname: /usr/sbin/makuosan
# config: /etc/sysconfig/makuosan
# pidfile: /var/run/makuosan.pid
PATH=/sbin:/bin:/usr/bin:/usr/sbin
# Source function library.
. /etc/init.d/functions
|
36959136 |
export MAKUOSAN_USER
export MAKUOSAN_GROUP
export MAKUOSAN_GROUPS
export MAKUOSAN_BASE
export MAKUOSAN_PORT
export MAKUOSAN_SOCK
|
b60b392c |
# Get config. |
36959136 |
test -f /etc/sysconfig/network && . /etc/sysconfig/network |
b60b392c |
test -f /etc/sysconfig/makuosan && . /etc/sysconfig/makuosan |
36959136 |
[ -n "$BASE_DIR" ] && MAKUOSAN_BASE=$BASE_DIR;
[ -n "$PORT" ] && MAKUOSAN_PORT=$PORT
[ -n "$SOCKET" ] && MAKUOSAN_SOCK=$SOCKET |
b60b392c |
# Check that networking is up.
[ "${NETWORKING}" = "yes" ] || exit 0 |
36959136 |
[ -x /usr/sbin/makuosan ] || exit 1 |
b60b392c |
RETVAL=0
prog="makuosan"
start(){
# Check config. |
36959136 |
if [ -z "${MAKUOSAN_BASE}" ]; then
echo "base directory setting (MAKUOSAN_BASE) is empty." |
b60b392c |
exit 1
fi |
36959136 |
if [ ! -d "${MAKUOSAN_BASE}" ]; then
echo "${MAKUOSAN_BASE} is not exists." |
b60b392c |
exit 1
fi |
36959136 |
if [ -z "$LOGLEVEL" ]; then
LOGLEVEL=1
fi
if [ -n "$MCAST_ADDRESS" ]; then
OPTIONS="-m $MCAST_ADDRESS $OPTIONS"
fi
if [ -n "$IP_ADDRESS" ]; then
OPTIONS="-l $IP_ADDRESS $OPTIONS"
fi
OPTIONS="-d $LOGLEVEL $OPTIONS" |
b60b392c |
echo -n $"Starting $prog: " |
36959136 |
$prog $OPTIONS 2>/tmp/makuosan.$$ |
b60b392c |
RETVAL=$? |
36959136 |
if [ $RETVAL -eq 0 ]; then
touch /var/lock/subsys/$prog
p=`egrep '^pid ' /tmp/makuosan.$$ | cut -f 2 -d:`
echo $p > /var/run/${prog}.pid
echo_success
else
echo_failure
fi
rm -f /tmp/makuosan.$$ |
b60b392c |
echo
return $RETVAL
}
stop(){
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
rm -f /var/lock/subsys/$prog |
36959136 |
rm -f /var/run/${prog}.pid |
b60b392c |
fi
echo
return $RETVAL
}
|
36959136 |
status(){
OPT="-c tcp:127.0.0.1:5000"
[ -z "$PORT" ] && PORT=5000
[ -n "$IP_ADDRESS" ] && OPT="-c tcp:$IPADDRESS:$PORT"
[ -n "$MAKUOSAN_SOCK" ] && OPT="-c $MAKUOSAN_SOCK"
msync $OPT --status |
b60b392c |
}
restart(){
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status) |
36959136 |
status |
b60b392c |
;;
restart)
restart
;;
*) |
36959136 |
echo $"Usage: $0 {start|stop|status|restart}" |
b60b392c |
RETVAL=1
esac
exit $RETVAL |