X-Git-Url: http://andersk.mit.edu/gitweb/gssapi-openssh.git/blobdiff_plain/96c41595f1ca0665084d7f54ae6d13e0ad270d03..511e1d6869f968e3b92c4dc24d96f3349afb603e:/setup/SXXsshd.in diff --git a/setup/SXXsshd.in b/setup/SXXsshd.in index f2dbc1a..c015f23 100644 --- a/setup/SXXsshd.in +++ b/setup/SXXsshd.in @@ -6,6 +6,15 @@ # description: GSI-OpenSSH server daemon # +### BEGIN INIT INFO +# Provides: sshd +# Required-Start: $network +# Required-Stop: $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Description: Start the sshd daemon +### END INIT INFO + GLOBUS_LOCATION="@GLOBUS_LOCATION@" export GLOBUS_LOCATION @@ -21,29 +30,53 @@ PID_FILE=${localstatedir}/sshd.pid SSHD_ARGS="" +do_start() +{ + if [ ! -d $localstatedir ]; then + mkdir -p $localstatedir + fi + 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." +} + case "$1" in start) if [ ! -f $PID_FILE ]; then - if [ ! -d $localstatedir ]; then - mkdir -p $localstatedir - fi - echo "Starting up GSI-OpenSSH sshd server" - ${sbindir}/sshd $SSHD_ARGS > /dev/null 2>&1 & - if [ $? -ne 0 ] ; then - echo "Failed to start up GSI-OpenSSH sshd server" - fi + do_start else - echo "GSI-OpenSSH sshd is already running..." + 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 - pid=`cat $PID_FILE` - kill -TERM $pid - sleep 2 - kill -TERM $pid 2> /dev/null - rm -f $PID_FILE + do_stop + else + echo "The server's pid file does not exist! Are you sure the server is running?" fi ;;