#!/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 export MAKUOSAN_USER export MAKUOSAN_GROUP export MAKUOSAN_GROUPS export MAKUOSAN_BASE export MAKUOSAN_PORT export MAKUOSAN_SOCK # Get config. test -f /etc/sysconfig/network && . /etc/sysconfig/network test -f /etc/sysconfig/makuosan && . /etc/sysconfig/makuosan [ -n "$BASE_DIR" ] && MAKUOSAN_BASE=$BASE_DIR; [ -n "$PORT" ] && MAKUOSAN_PORT=$PORT [ -n "$SOCKET" ] && MAKUOSAN_SOCK=$SOCKET # Check that networking is up. [ "${NETWORKING}" = "yes" ] || exit 0 [ -x /usr/sbin/makuosan ] || exit 1 RETVAL=0 prog="makuosan" start(){ # Check config. if [ -z "${MAKUOSAN_BASE}" ]; then echo "base directory setting (MAKUOSAN_BASE) is empty." exit 1 fi if [ ! -d "${MAKUOSAN_BASE}" ]; then echo "${MAKUOSAN_BASE} is not exists." exit 1 fi 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" echo -n $"Starting $prog: " $prog $OPTIONS 2>/tmp/makuosan.$$ RETVAL=$? 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.$$ echo return $RETVAL } stop(){ echo -n $"Stopping $prog: " killproc $prog RETVAL=$? if [ $RETVAL -eq 0 ] ; then rm -f /var/lock/subsys/$prog rm -f /var/run/${prog}.pid fi echo return $RETVAL } 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 } restart(){ stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|status|restart}" RETVAL=1 esac exit $RETVAL