support/makuosan.sysv
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