use pidfiles for interloggers too
authorAleš Křenek <ljocha@ics.muni.cz>
Fri, 27 Nov 2009 12:08:21 +0000 (12:08 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Fri, 27 Nov 2009 12:08:21 +0000 (12:08 +0000)
org.glite.lb.server/config/startup

index c626c2c..aa16a8f 100755 (executable)
@@ -23,6 +23,9 @@ GLITE_LB_TYPE=${GLITE_LB_TYPE:-'server'} # server, proxy, both
 GLITE_LB_PROXY_SOCK=${GLITE_LB_PROXY_SOCK:-'/tmp/glite-lbproxy-ilog.sock'}
 GLITE_LB_PROXY_FPREFIX=${GLITE_LB_PROXY_FPREFIX:-'/tmp/glite-lbproxy-ilog_events'}
 
+IL_PIDFILE=$GLITE_LOCATION_VAR/glite-lb-interlogd.pid
+NOTIF_IL_PIDFILE=$GLITE_LOCATION_VAR/glite-lb-notif-interlogd.pid
+
 unset creds port
 
 start()
@@ -119,7 +122,7 @@ start()
                echo -n Starting glite-lb-notif-interlogd ...
                su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-notif-interlogd \
                        -f $GLITE_LB_NOTIF_FPREFIX -s $GLITE_LB_NOTIF_SOCK \
-                       -M 10485760 \
+                       -i $NOTIF_IL_PIDFILE -M 10485760 \
                        $creds $GLITE_LB_NOTIF_OTHER_OPTIONS" && echo " done" || echo " FAILED"
        else
                echo Warning: glite-lb-notif-interlogd not installed, LB notifications will not work
@@ -138,6 +141,7 @@ start()
                        echo -n Starting glite-lb-interlogd for proxy ...
                        su - $GLITE_USER -c "$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"
                else
                        echo Warning: glite-lb-interlogd not installed, logging to LB proxy will not work
@@ -148,7 +152,7 @@ start()
 stop_daemon()
 {
        name="$1"
-       pidfile="$2"
+       local pidfile="$2"
 
        if [ -f "$pidfile" ]; then
                pid=`cat "$pidfile"`
@@ -196,8 +200,7 @@ stop()
 {
        LC_ALL=C
 
-       echo -n Stopping glite-lb-notif-interlogd ...
-       killall glite-lb-notif-interlogd
+       stop_daemon glite-lb-notif-interlogd $NOTIF_IL_PIDFILE
        echo " done"
 
        stop_daemon "glite-lb-bkserverd" $pidfile
@@ -205,14 +208,11 @@ stop()
                stop_daemon "glite-jp-importer" $jp_importer_pidfile
        fi
 
-       pid=`netstat -anp --unix  2>/dev/null | grep "^unix .* LISTEN.* ${GLITE_LB_PROXY_SOCK}$"`
-       if test x"$pid" = x"" ; then
+       if test -f $IL_PIDFILE; then
+               stop_daemon glite-lb-interlogd $IL_PIDFILE
+               echo "done"
+       else 
                echo "glite-lb-interlogd for proxy not running"
-       else
-               pid=`echo $pid | sed -e 's/.*LISTEN[A-Z]*  *[^ ][^ ]*  *\([0-9]*\).*/\1/'`
-               echo -n Stopping glite-lb-interlogd for proxy \($pid\) ...
-               kill "$pid"
-               echo " done"
        fi
 }