X-Git-Url: http://andersk.mit.edu/gitweb/gssapi-openssh.git/blobdiff_plain/03f5c33a0ce5d5ca3b708c6e96c9ff8fc6d5362e..96aba1254ac1dd35acf413b62f06384276bae832:/setup/SXXsshd.in diff --git a/setup/SXXsshd.in b/setup/SXXsshd.in index 507e12d..2a01f22 100644 --- a/setup/SXXsshd.in +++ b/setup/SXXsshd.in @@ -1,37 +1,84 @@ #!/bin/sh +# +# Init file for GSI-OpenSSH server daemon +# +# chkconfig: 2345 55 25 +# description: GSI-OpenSSH server daemon +# -GLOBUS_LOCATION=@GLOBUS_LOCATION@ - +GLOBUS_LOCATION="@GLOBUS_LOCATION@" export GLOBUS_LOCATION . ${GLOBUS_LOCATION}/libexec/globus-script-initializer . ${libexecdir}/globus-sh-tools.sh -. ${sysconfdir}/grid-info.conf PID_FILE=${localstatedir}/sshd.pid -case "$1" in - start) - echo "Starting up GSI-OpenSSH sshd server" - ${sbindir}/sshd & - if [ $? -ne 0 ] ; then - echo "Failed to start up GSI-OpenSSH sshd server" +# +# SSHD arguments can be added here within the following +# set of double quotes. +# + +SSHD_ARGS="" + +do_start() +{ + if [ ! -d $localstatedir ]; then + mkdir -p $localstatedir fi - ;; - - stop) - if [ -f $PID_FILE ] ; then - kill -TERM `cat $PID_FILE` - sleep 2 - kill -TERM `cat $PID_FILE` 2> /dev/null - rm -f $PID_FILE + echo -n "Starting up GSI-OpenSSH sshd server... " + ${sbindir}/sshd $SSHD_ARGS > /dev/null 2>&1 & + if [ $? -eq 0 ]; then + echo "done." + else + echo "failed to start GSI-OpenSSH sshd server!" fi - ;; +} + +do_stop() +{ + echo -n "Stopping the GSI-OpenSSH sshd server... " + pid=`cat $PID_FILE` + kill -TERM $pid + sleep 2 + kill -TERM $pid 2> /dev/null + rm -f $PID_FILE + echo "done." +} - *) - echo "Usage: $0 ( start | stop )" - exit 1 +case "$1" in + start) + if [ ! -f $PID_FILE ]; then + do_start + else + pid=`cat $PID_FILE` + psout=`ps -A | grep $pid | grep -v grep | awk "{if (\\\$1 == $pid) print}"` + if [ "x$psout" = "x" ]; then + echo "Found stale sshd pid file... removing it." + rm -f $PID_FILE + do_start + else + echo "GSI-OpenSSH sshd server is already running!" + fi + fi + ;; + + stop) + if [ -f $PID_FILE ] ; then + do_stop + else + echo "The server's pid file does not exist! Are you sure the server is running?" + fi + ;; + + restart) + $0 stop + $0 start + ;; + + *) + echo "Usage: $0 (start|stop|restart)" + exit 1 esac exit 0 -