[ -f $HOME/.glite.conf ] && . $HOME/.glite.conf
-[ -n "$GLITE_LB_SERVER_PIDFILE" ] && pidfile=$GLITE_LB_SERVER_PIDFILE ||
- pidfile=$GLITE_LOCATION_VAR/glite-lb-bkserverd.pid
+[ -n "$GLITE_LB_SERVER_PIDFILE" ] && BK_PIDFILE=$GLITE_LB_SERVER_PIDFILE ||
+ BK_PIDFILE=$GLITE_LOCATION_VAR/glite-lb-bkserverd.pid
[ -z "$GLITE_LB_NOTIF_SOCK" ] && GLITE_LB_NOTIF_SOCK="/tmp/glite-lb-notif.sock"
[ -n "$GLITE_JP_IMPORTER_PIDFILE" ] && jp_importer_pidfile=$GLITE_JP_IMPORTER_PIDFILE ||
jp_importer_pidfile=$GLITE_LOCATION_VAR/glite-jp-importer.pid
unset creds port
+start_daemon()
+{
+ local name="$1"
+ local pidfile="$2"
+ local cmd="$3"
+
+ if [ -f "$pidfile" ]; then
+ if kill -0 `cat $pidfile`; then
+ return 0
+ fi
+ echo -n "Warning: stalled $pidfile for $name"
+ rm -f "$pidfile"
+ fi
+ echo -n "Starting $name ..."
+ su - $GLITE_USER -c "$cmd" && echo " done" || echo " FAILED"
+}
+
+stop_daemon()
+{
+ name="$1"
+ local pidfile="$2"
+
+ if [ -f "$pidfile" ]; then
+ pid=`cat "$pidfile"`
+ echo -n Stopping $name \($pid\) ...
+ kill $pid
+ try=0
+ while kill -0 $pid >/dev/null 2>&1; do
+ sleep 1;
+ try=`expr $try + 1`
+ if [ $try = 20 ]; then
+ kill -9 $pid
+ echo " force quit after $try retries"
+ return 1
+ fi
+ done
+ echo " done"
+ rm -f $pidfile
+ else
+ echo $name not running
+ return 1
+ fi
+}
+
+status_daemon()
+{
+ local name="$1"
+ local pidfile="$2"
+
+ if [ -f "$pidfile" ]; then
+ pid=`cat "$pidfile"`
+ if kill -0 $pid >/dev/null 2>&1; then
+ echo $name running as $pid
+ else
+ echo $name not running
+ return 1
+ fi
+ else
+ echo $name not running
+ return 1
+ fi
+
+ return 0
+}
+
start()
{
if test -z "$GLITE_USER" ;then
;;
esac
- echo -n Starting glite-lb-bkserverd ...
- su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-bkserverd \
+ start_daemon glite-lb-bkserver "$BK_PIDFILE" "$GLITE_LOCATION/bin/glite-lb-bkserverd \
--notif-il-sock=$GLITE_LB_NOTIF_SOCK \
--notif-il-fprefix=$GLITE_LB_NOTIF_FPREFIX \
- $super $creds -i $pidfile $port $wport $dumpdir $purgedir $lbreg_maildir $proxy\
- $GLITE_LB_SERVER_OTHER_OPTIONS" \
- && echo " done" || echo " FAILED"
+ $super $creds -i $BK_PIDFILE $port $wport $dumpdir $purgedir $lbreg_maildir $proxy\
+ $GLITE_LB_SERVER_OTHER_OPTIONS"
if test -x $GLITE_LOCATION/bin/glite-lb-notif-interlogd; then
- echo -n Starting glite-lb-notif-interlogd ...
- su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-notif-interlogd \
+ start_daemon glite-lb-notif-interlogd "$NOTIF_IL_PIDFILE" "$GLITE_LOCATION/bin/glite-lb-notif-interlogd \
-f $GLITE_LB_NOTIF_FPREFIX -s $GLITE_LB_NOTIF_SOCK \
-i $NOTIF_IL_PIDFILE -M 10485760 \
- $creds $GLITE_LB_NOTIF_OTHER_OPTIONS" && echo " done" || echo " FAILED"
+ $creds $GLITE_LB_NOTIF_OTHER_OPTIONS"
else
echo Warning: glite-lb-notif-interlogd not installed, LB notifications will not work
fi
if test x"$GLITE_LB_EXPORT_ENABLED" = x"true" ; then
- echo -n Starting glite-jp-importer ...
- su - $GLITE_USER -c "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GLITE_JP_LOCATION/lib $GLITE_JP_LOCATION/bin/glite-jp-importer \
+ start_daemon glite-jp-importer "$jp_importer_pidfile" "\
+ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GLITE_JP_LOCATION/lib \
+ $GLITE_JP_LOCATION/bin/glite-jp-importer \
-i $jp_importer_pidfile $jpreg_maildir $jpdump_maildir $sandbox_maildir \
- $jpps $creds $GLITE_JP_IMPORTER_ARGS" \
- && echo " done" || echo " FAILED"
+ $jpps $creds $GLITE_JP_IMPORTER_ARGS"
fi
if test x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both" ; then
- if test -x $GLITE_LOCATION/bin/glite-lb-notif-interlogd; then
- echo -n Starting glite-lb-interlogd for proxy ...
- su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-interlogd \
+ if test -x $GLITE_LOCATION/bin/glite-lb-interlogd; then
+ start_daemon "glite-lb-interlog for proxy" "$IL_PIDFILE" "$GLITE_LOCATION/bin/glite-lb-interlogd \
-f $GLITE_LB_PROXY_FPREFIX -s $GLITE_LB_PROXY_SOCK \
-i $IL_PIDFILE \
- $creds $GLITE_LB_PREFIX_OTHER_OPTIONS" && echo " done" || echo " FAILED"
+ $creds $GLITE_LB_PREFIX_OTHER_OPTIONS"
else
echo Warning: glite-lb-interlogd not installed, logging to LB proxy will not work
fi
fi
}
-stop_daemon()
-{
- name="$1"
- local pidfile="$2"
-
- if [ -f "$pidfile" ]; then
- pid=`cat "$pidfile"`
- kill $pid
- echo -n Stopping $name \($pid\) ...
- try=0
- while ps p $pid >/dev/null 2>&1; do
- sleep 1;
- try=`expr $try + 1`
- if [ $try = 20 ]; then
- echo " giving up after $try retries"
- return 1
- fi
- done
- echo " done"
- rm -f $pidfile
- else
- echo $pidfile does not exist - $name not running? >&2
- return 1
- fi
-}
-
-status_daemon()
-{
- name="$1"
- pidfile="$2"
-
- if [ -f "$pidfile" ]; then
- pid=`cat "$pidfile"`
- if ps p $pid >/dev/null 2>&1; then
- echo $name running as $pid
- else
- echo $name not running
- return 1
- fi
- else
- echo $name not running
- return 1
- fi
-
- return 0
-}
-
stop()
{
- LC_ALL=C
-
- stop_daemon glite-lb-notif-interlogd $NOTIF_IL_PIDFILE
- echo " done"
+ stop_daemon "glite-lb-notif-interlogd" $NOTIF_IL_PIDFILE
- stop_daemon "glite-lb-bkserverd" $pidfile
+ stop_daemon "glite-lb-bkserverd" $BK_PIDFILE
if test x"$GLITE_LB_EXPORT_ENABLED" = x"true"; then
stop_daemon "glite-jp-importer" $jp_importer_pidfile
fi
- if test -f $IL_PIDFILE; then
- stop_daemon glite-lb-interlogd $IL_PIDFILE
- echo "done"
- else
- echo "glite-lb-interlogd for proxy not running"
- fi
+ stop_daemon "glite-lb-interlogd" $IL_PIDFILE
}
status()
{
retval=0
- LC_ALL=C
-
- if netstat -an --unix | grep "^unix .* LISTEN.* ${GLITE_LB_NOTIF_SOCK}$" >/dev/null 2>&1 ;then
- echo glite-lb-notif-interlogd running
- else
- echo glite-lb-notif-interlogd not running
- retval=1
- fi
- if netstat -an --unix | grep "^unix .* LISTEN.* ${GLITE_LB_PROXY_SOCK}$" >/dev/null 2>&1 ;then
- echo glite-lb-interlogd for proxy running
- else
- echo glite-lb-interlogd for proxy not running
- retval=1
- fi
+ status_daemon "glite-lb-notif-interlogd" "$NOTIF_IL_PIDFILE" || retval=1
+ status_daemon "glite-lb-interlogd for proxy" "$IL_PIDFILE" || retval=1
- status_daemon "glite-lb-bkserverd" "$pidfile" || retval=1
+ status_daemon "glite-lb-bkserverd" "$BK_PIDFILE" || retval=1
if test x"$GLITE_LB_EXPORT_ENABLED" = x"true"; then
status_daemon "glite-jp-importer" "$jp_importer_pidfile" || retval=1
fi