#! /bin/sh # Copyright (c) 1995-1998 SuSE GmbH Nuernberg, Germany. # # Author: Chris Saia # # /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