# 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
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!"
+ 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()
{
- echo "Stopping the GSI-OpenSSH sshd server..."
+ 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
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."
+ echo "Found stale sshd pid file... removing it."
rm -f $PID_FILE
do_start
else
- echo "GSI-OpenSSH sshd is already running!"
+ 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
;;