[ -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()
{
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
[ -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
}
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