| #! /bin/sh |
| # Copyright (c) 1995-1998 SuSE GmbH Nuernberg, Germany. |
| # |
| # Author: Chris Saia <csaia@wtower.com> |
| # |
| # /sbin/init.d/sshd |
| # |
| # and symbolic its link |
| # |
| # /sbin/rcsshd |
| # |
| |
| . /etc/rc.config |
| |
| # Determine the base and follow a runlevel link name. |
| base=${0##*/} |
| link=${base#*[SK][0-9][0-9]} |
| |
| # Force execution if not called by a runlevel directory. |
| test $link = $base && START_SSHD=yes |
| test "$START_SSHD" = yes || exit 0 |
| |
| # The echo return value for success (defined in /etc/rc.config). |
| return=$rc_done |
| case "$1" in |
| start) |
| echo -n "Starting service sshd" |
| ## Start daemon with startproc(8). If this fails |
| ## the echo return value is set appropriate. |
| |
| startproc /usr/sbin/sshd || return=$rc_failed |
| |
| echo -e "$return" |
| ;; |
| stop) |
| echo -n "Stopping service sshd" |
| ## Stop daemon with killproc(8) and if this fails |
| ## set echo the echo return value. |
| |
| killproc -TERM /usr/sbin/sshd || return=$rc_failed |
| |
| echo -e "$return" |
| ;; |
| restart) |
| ## If first returns OK call the second, if first or |
| ## second command fails, set echo return value. |
| $0 stop && $0 start || return=$rc_failed |
| ;; |
| reload) |
| ## Choose ONE of the following two cases: |
| |
| ## First possibility: A few services accepts a signal |
| ## to reread the (changed) configuration. |
| |
| echo -n "Reload service sshd" |
| killproc -HUP /usr/sbin/sshd || return=$rc_failed |
| echo -e "$return" |
| ;; |
| status) |
| echo -n "Checking for service sshd" |
| ## Check status with checkproc(8), if process is running |
| ## checkproc will return with exit status 0. |
| |
| checkproc /usr/sbin/sshd && echo OK || echo No process |
| ;; |
| probe) |
| ## Optional: Probe for the necessity of a reload, |
| ## give out the argument which is required for a reload. |
| |
| test /etc/ssh/sshd_config -nt /var/run/sshd.pid && echo reload |
| ;; |
| *) |
| echo "Usage: $0 {start|stop|status|restart|reload[|probe]}" |
| exit 1 |
| ;; |
| esac |
| |
| # Inform the caller not only verbosely and set an exit status. |
| test "$return" = "$rc_done" || exit 1 |
| exit 0 |