]> andersk Git - gssapi-openssh.git/blobdiff - openssh/contrib/redhat/sshd.init
updating OPENSSH_GSSAPI_Protocol1-branch with latest on the trunk (OpenSSH 3.2.3p1)
[gssapi-openssh.git] / openssh / contrib / redhat / sshd.init
index 86b040cda0e1588dd14c117abf0aa4b15145d1fc..4ee8630c3954eb1711d5f4c03a7ece5f2678f116 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-
+#
 # Init file for OpenSSH server daemon
 #
 # chkconfig: 2345 55 25
 # source function library
 . /etc/rc.d/init.d/functions
 
+# pull in sysconfig settings
 [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
 
 RETVAL=0
+prog="sshd"
 
 # Some functions to make the below more readable
 KEYGEN=/usr/bin/ssh-keygen
+SSHD=/usr/sbin/sshd
 RSA1_KEY=/etc/ssh/ssh_host_key
 RSA_KEY=/etc/ssh/ssh_host_rsa_key
 DSA_KEY=/etc/ssh/ssh_host_dsa_key
 PID_FILE=/var/run/sshd.pid
-my_success() {
-  local msg
-  if [ $# -gt 1 ]; then
-    msg="$2"
-  else
-    msg="done"
-  fi
-  case "`type -type success`" in
-    function)
-      success "$1"
-    ;;
-    *)
-      echo -n "${msg}"
-    ;;
-  esac
-}
-my_failure() {
-  local msg
-  if [ $# -gt 1 ]; then
-    msg="$2"
-  else
-    msg="FAILED"
-  fi
-  case "`type -type failure`" in
-    function)
-      failure "$1"
-    ;;
-    *)
-      echo -n "${msg}"
-    ;;
-  esac
-}
+
 do_rsa1_keygen() {
-       if ! test -f $RSA1_KEY ; then
-               echo -n "Generating SSH1 RSA host key: "
+       if [ ! -s $RSA1_KEY ]; then
+               echo -n $"Generating SSH1 RSA host key: "
                if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then
-                       my_success "RSA1 key generation"
+                       chmod 600 $RSA1_KEY
+                       chmod 644 $RSA1_KEY.pub
+                       success $"RSA1 key generation"
                        echo
                else
-                       my_failure "RSA1 key generation"
+                       failure $"RSA1 key generation"
                        echo
                        exit 1
                fi
        fi
 }
+
 do_rsa_keygen() {
-       if ! test -f $RSA_KEY ; then
-               echo -n "Generating SSH2 RSA host key: "
+       if [ ! -s $RSA_KEY ]; then
+               echo -n $"Generating SSH2 RSA host key: "
                if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then
-                       my_success "RSA key generation"
+                       chmod 600 $RSA_KEY
+                       chmod 644 $RSA_KEY.pub
+                       success $"RSA key generation"
                        echo
                else
-                       my_failure "RSA key generation"
+                       failure $"RSA key generation"
                        echo
                        exit 1
                fi
        fi
 }
+
 do_dsa_keygen() {
-       if ! test -f $DSA_KEY ; then
-               echo -n "Generating SSH2 DSA host key: "
+       if [ ! -s $DSA_KEY ]; then
+               echo -n $"Generating SSH2 DSA host key: "
                if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then
-                       my_success "DSA key generation"
+                       chmod 600 $DSA_KEY
+                       chmod 644 $DSA_KEY.pub
+                       success $"DSA key generation"
                        echo
                else
-                       my_failure "DSA key generation"
+                       failure $"DSA key generation"
                        echo
                        exit 1
                fi
        fi
 }
-do_restart_sanity_check() {
-       sshd -t
+
+do_restart_sanity_check()
+{
+       $SSHD -t
        RETVAL=$?
        if [ ! "$RETVAL" = 0 ]; then
-               my_failure "Configuration file or keys"
+               failure $"Configuration file or keys are invalid"
                echo
-               exit $RETVAL
        fi
 }
 
+start()
+{
+       # Create keys if necessary
+       do_rsa1_keygen
+       do_rsa_keygen
+       do_dsa_keygen
+
+       echo -n $"Starting $prog:"
+       initlog -c "$SSHD $OPTIONS" && success || failure
+       RETVAL=$?
+       [ "$RETVAL" = 0 ] && touch /var/lock/subsys/sshd
+       echo
+}
+
+stop()
+{
+       echo -n $"Stopping $prog:"
+       killproc $SSHD -TERM
+       RETVAL=$?
+       [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/sshd
+       echo
+}
+
+reload()
+{
+       echo -n $"Reloading $prog:"
+       killproc $SSHD -HUP
+       RETVAL=$?
+       echo
+}
 
 case "$1" in
        start)
-               # Create keys if necessary
-               do_rsa1_keygen;
-               do_rsa_keygen;
-               do_dsa_keygen;
-               
-               echo -n "Starting sshd: "
-               if [ ! -f $PID_FILE ] ; then
-                       sshd $OPTIONS
-                       RETVAL=$?
-                       if [ "$RETVAL" = "0" ] ; then
-                               my_success "sshd startup" "sshd"
-                               touch /var/lock/subsys/sshd
-                       else
-                               my_failure "sshd startup" ""
-                       fi
-               fi
-               echo
+               start
                ;;
        stop)
-               echo -n "Shutting down sshd: "
-               if [ -f $PID_FILE ] ; then
-                       killproc sshd
-                       RETVAL=$?
-                       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd
-               fi
-               echo
+               stop
                ;;
        restart)
-               do_restart_sanity_check
-               $0 stop
-               $0 start
-               RETVAL=$?
+               stop
+               start
+               ;;
+       reload)
+               reload
                ;;
        condrestart)
                if [ -f /var/lock/subsys/sshd ] ; then
                        do_restart_sanity_check
-                       $0 stop
-                       $0 start
-                       RETVAL=$?
+                       if [ "$RETVAL" = 0 ] ; then
+                               stop
+                               # avoid race
+                               sleep 3
+                               start
+                       fi
                fi
                ;;
        status)
-               status sshd
+               status $SSHD
                RETVAL=$?
                ;;
        *)
-               echo "Usage: sshd {start|stop|restart|status|condrestart}"
-               exit 1
-               ;;
+               echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
+               RETVAL=1
 esac
-
 exit $RETVAL
This page took 0.41965 seconds and 4 git commands to generate.