From b69e9fcd09a003ffd5f0ec60748cd8d2c23a66de Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zden=C4=9Bk=20Salvet?= Date: Fri, 14 Oct 2005 15:45:49 +0000 Subject: [PATCH] - GLITE_JP_PRIMARY prefix for all JP PS specific variables - use -c and -k credential path options - use glite-jp-primarystoraged's pidfile - better quoting --- org.glite.jp.primary/config/startup | 65 ++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/org.glite.jp.primary/config/startup b/org.glite.jp.primary/config/startup index 63110cf..6050d99 100644 --- a/org.glite.jp.primary/config/startup +++ b/org.glite.jp.primary/config/startup @@ -12,11 +12,11 @@ GLITE_LOCATION_VAR=${GLITE_LOCATION_VAR:-${GLITE_LOCATION}/var} [ -f $HOME/.glite.conf ] && . $HOME/.glite.conf [ -n "$GLITE_JP_PRIMARY_PIDFILE" ] && pidfile=$GLITE_JP_PRIMARY_PIDFILE || - pidfile=$GLITE_LOCATION_VAR/glite-jp-primarystoraged.pid + pidfile="$GLITE_LOCATION_VAR/glite-jp-primarystoraged.pid" unset creds -GLITE_JP_PS_PORT=8901 +GLITE_JP_PRIMARY_PORT=8901 start() { @@ -30,16 +30,19 @@ start() echo FAILED return 1 fi - if test -z "$GLITE_JP_FTP_PORT" -o \ - -z "$GLITE_JP_INTERNAL" -o -z "$GLITE_JP_EXTERNAL" ;then - echo 'Error: incomplete configuration (GLITE_JP_FTP_PORT,' \ - 'GLITE_JP_INTERNAL, or GLITE_JP_EXTERNAL is not set' + if test -z "$GLITE_JP_PRIMARY_FTP_PORT" -o \ + -z "$GLITE_JP_PRIMARY_INTERNAL" -o -z "$GLITE_JP_PRIMARY_EXTERNAL" ;then + echo 'Error: incomplete configuration (GLITE_JP_PRIMARY_FTP_PORT,' \ + 'GLITE_JP_PRIMARY_INTERNAL, or GLITE_JP_PRIMARY_EXTERNAL is not set' echo FAILED return 1 fi - [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ] && - creds="-c $GLITE_HOST_CERT -k $GLITE_HOST_KEY" + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ] ;then + creds="-c '$GLITE_HOST_CERT' -k '$GLITE_HOST_KEY'" + X509_USER_CERT="$GLITE_HOST_CERT" + X509_USER_KEY="$GLITE_HOST_KEY" + fi if test -z "$creds"; then if su - $GLITE_USER -c "test -r /etc/grid-security/hostkey.pem -a -r /etc/grid-security/hostcert.pem"; then @@ -53,33 +56,49 @@ start() [ -z "$creds" ] && echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2 - # XXX: creds and pidfile not supported yet - - unset GLITE_JP_DBCS_OPTION - if test -n "$GLITE_JP_DBCS"; then - GLITE_JP_DBCS_OPTION="-BD,'$GLITE_JP_DBCS'" + unset GLITE_JP_PRIMARY_DBCS_OPTION + if test -n "$GLITE_JP_PRIMARY_DBCS"; then + GLITE_JP_PRIMARY_DBCS_OPTION="-BD,'$GLITE_JP_PRIMARY_DBCS'" fi echo -n Starting glite-jp-primarystoraged ... - su - $GLITE_USER -c "X509_USER_CERT=\"$X509_USER_CERT\" \ - X509_USER_KEY=\"$X509_USER_KEY\" \ - $GLITE_LOCATION/bin/glite-jp-primarystoraged \ - -BI,'$GLITE_JP_INTERNAL' -BE,'$GLITE_JP_EXTERNAL' \ - ${GLITE_JP_DBCS_OPTION} " && echo " done" || echo " FAILED" + su - $GLITE_USER -c " $GLITE_LOCATION/bin/glite-jp-primarystoraged \ + $creds -i '$pidfile' + -BI,'$GLITE_JP_PRIMARY_INTERNAL' -BE,'$GLITE_JP_PRIMARY_EXTERNAL' \ + ${GLITE_JP_PRIMARY_DBCS_OPTION} " && echo " done" || echo " FAILED" echo -n Starting JP gridftp server ... su - $GLITE_USER -c "X509_USER_CERT=\"$X509_USER_CERT\" \ X509_USER_KEY=\"$X509_USER_KEY\" \ LD_PRELOAD=$GLITE_LOCATION/lib/glite-jp-ftpdauth.so \ - $GLOBUS_LOCATION/sbin/in.ftpd -a -S -p $GLITE_JP_FTP_PORT & \ + $GLOBUS_LOCATION/sbin/in.ftpd -a -S -p $GLITE_JP_PRIMARY_FTP_PORT & \ pid=\$!; sleep 2; kill -0 \$pid" && echo " done" || echo " FAILED" } stop() { - # XXX pidfiles - killall glite-jp-primarystoraged + if [ -f "$pidfile" ]; then + pid=`cat "$pidfile"` + kill $pid + echo -n Stopping glite-jp-primarystoraged \($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 - glite-jp-primarystoraged not running? >&2 + return 1 + fi +} + # XXX echo >&2 'stopping JP gridftp server not implemented yet' return 1 } @@ -87,14 +106,14 @@ stop() status() { # XXX pidfile - if netstat -an --inet | grep "^tcp .* 0.0.0.0:${GLITE_JP_PS_PORT} .*LISTEN" >/dev/null 2>&1 ;then + if netstat -an --inet | grep "^tcp .* 0.0.0.0:${GLITE_JP_PRIMARY_PORT} .*LISTEN" >/dev/null 2>&1 ;then echo glite-jp-primarystoraged running else echo glite-jp-primarystoraged not running return 1 fi - if netstat -an --inet | grep "^tcp .* 0.0.0.0:${GLITE_JP_FTP_PORT} .*LISTEN" >/dev/null 2>&1 ;then + if netstat -an --inet | grep "^tcp .* 0.0.0.0:${GLITE_JP_PRIMARY_FTP_PORT} .*LISTEN" >/dev/null 2>&1 ;then echo JP gridftp server running else echo JP gridftp server not running -- 1.8.2.3