#!/bin/sh # @(#)ms_srv.sh 1.11 6/26/97 # # stops, starts, or restarts the server # LMPATHS="/opt/lanman/lib/lmpaths" if [ -f ${LMPATHS} ] then . ${LMPATHS} else . lmpaths fi PATH=:$PATH export PATH # # Stop the server # xstop () { # # Stop $LMXCTRL_NAME which will kill any possibly running $LMXSRV_NAMEs # Find the pid and kill it. # psline=`ps -e | grep $LMXCTRL_NAME` if [ "$psline" ] then set -- $psline ctrlpid=$1 kill $ctrlpid # Wait for awhile, checking to see if $LMXCTRL_NAME died counter= while kill -0 $ctrlpid do if [ "$counter" = "xxxxxxxxxxxxxxx" ] then kill -9 $ctrlpid else counter=${counter}x fi sleep 2 done fi > $DEV_NULL_PATH 2>&1 # Now, kill anything left with 'lmx' in its name! psline=`ps -e | fgrep "lmx."` counter= if [ "$psline" != "" ] then sleep 5 while [ "$psline" != "" -a "$counter" != "xxxxxxxxxxxxxx" ] do psline=`ps -e | fgrep "lmx."` if [ "$psline" ] then set -- $psline pid=$1 kill -9 $pid counter=${counter}x fi done fi > $DEV_NULL_PATH 2>&1 psline=`ps -e | fgrep "lmx."` if [ "$psline" != "" ] then echo "Error when trying to stop SunLink Server" echo "All of the processes did not terminate:" echo "$psline" else echo "SunLink Server daemons have been stopped." fi $DELSHMEM_PATH > $DEV_NULL_PATH 2>&1 } # # Start the server # xstart () { # # if 'timex' is active, then cleanup old timex(1) files and # timex(1) lmx.ctrl; else, just start lmx.ctrl # echo "Starting SunLink Server daemons...." if [ `${SRVCONFIG_PATH} -g "lmxserver,timex"` -ne 0 ] then # # clean up the TIMEXDIR_PATH # if [ -d "${TIMEXDIR_PATH}" ] then rm -fr ${TIMEXDIR_PATH}/lmx* else mkdir -p ${TIMEXDIR_PATH} fi # # and run things # cd `dirname $LMXCTRL_PATH` && \ $TIMEX_PATH -s $LMXCTRL_NAME < $DEV_NULL_PATH \ 2> ${TIMEXDIR_PATH}/${LMXCTRL_NAME} else cd `dirname $LMXCTRL_PATH` && $LMXCTRL_NAME < $DEV_NULL_PATH fi } # # Stop the admin server if installed # astop () { if [ -f ${SLSADM_PATH} ] then psline=`ps -e | grep $SLSADM_NAME` if [ "$psline" ] then set -- $psline slspid=$1 kill $slspid fi fi } # # Start the admin server if installed # astart () { if [ -f ${SLSADM_PATH} ] then cd `dirname ${SLSADM_PATH}` && $SLSADM_NAME < $DEV_NULL_PATH fi } case $1 in 'stop' | '-stop') astop xstop exit 0 ;; 'start' | '-start') xstart astart exit 0 ;; 'restart' | '-restart') astop xstop xstart astart exit 0 ;; 'powerfail' | '-powerfail') # # Find the pid of $LMXCTRL_NAME and send SIGPWR to it # psline=`ps -e | grep $LMXCTRL_NAME` if [ "$psline" != "" ] then set -- $psline pid="$1" kill -19 "$pid" fi exit 0 ;; esac echo "Usage: $0 start|stop|restart|powerfail" exit 1