#!/bin/sh
+#
+# Init file for GSI-OpenSSH server daemon
+#
+# chkconfig: 2345 55 25
+# 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
. ${libexecdir}/globus-sh-tools.sh
PID_FILE=${localstatedir}/sshd.pid
+SSHD=${sbindir}/sshd
+
+#
+# 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
+ printf "%s" "Starting up GSI-OpenSSH sshd server... "
+ if [ ! -e $SSHD ]; then
+ echo "failed"
+ echo "$SSHD does not exist."
+ exit 1;
+ fi
+ if [ ! -x $SSHD ]; then
+ echo "failed"
+ echo "$SSHD is not executable."
+ exit 1;
+ fi
+ $SSHD $SSHD_ARGS > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ echo "done."
+ else
+ echo "failed to start $SSHD!"
+ fi
+}
+
+do_stop()
+{
+ printf "%s" "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
- echo "Starting up GSI-OpenSSH sshd server"
- ${sbindir}/sshd &
- if [ $? -ne 0 ] ; then
- echo "Failed to start up GSI-OpenSSH sshd server"
+ 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
- if [ ! -d $localstatedir ]; then
- mkdir -p $localstatedir
- fi
- echo $! > $PID_FILE
+ echo "GSI-OpenSSH sshd server is already running!"
fi
- else
- echo "GSI-OpenSSH sshd is already running..."
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
+ do_stop
+ else
+ echo "The server's pid file does not exist! Are you sure the server is running?"
fi
;;
- *)
- echo "Usage: $0 ( start | stop )"
+ restart)
+ $0 stop
+ $0 start
+ ;;
+
+ *)
+ echo "Usage: $0 (start|stop|restart)"
exit 1
esac
exit 0
-