1#! /bin/sh 2# Copyright (c) 1995-2000 SuSE GmbH Nuernberg, Germany. 3# 4# Author: Jiri Smid <feedback@suse.de> 5# 6# /etc/init.d/sshd 7# 8# and symbolic its link 9# 10# /usr/sbin/rcsshd 11# 12### BEGIN INIT INFO 13# Provides: sshd 14# Required-Start: $network $remote_fs 15# Required-Stop: $network $remote_fs 16# Default-Start: 3 5 17# Default-Stop: 0 1 2 6 18# Description: Start the sshd daemon 19### END INIT INFO 20 21SSHD_BIN=/usr/sbin/sshd 22test -x $SSHD_BIN || exit 5 23 24SSHD_SYSCONFIG=/etc/sysconfig/ssh 25test -r $SSHD_SYSCONFIG || exit 6 26. $SSHD_SYSCONFIG 27 28SSHD_PIDFILE=/var/run/sshd.init.pid 29 30. /etc/rc.status 31 32# Shell functions sourced from /etc/rc.status: 33# rc_check check and set local and overall rc status 34# rc_status check and set local and overall rc status 35# rc_status -v ditto but be verbose in local rc status 36# rc_status -v -r ditto and clear the local rc status 37# rc_failed set local and overall rc status to failed 38# rc_reset clear local rc status (overall remains) 39# rc_exit exit appropriate to overall rc status 40 41# First reset status of this service 42rc_reset 43 44case "$1" in 45 start) 46 # Generate any missing host keys 47 ssh-keygen -A 48 echo -n "Starting SSH daemon" 49 ## Start daemon with startproc(8). If this fails 50 ## the echo return value is set appropriate. 51 52 startproc -f -p $SSHD_PIDFILE $SSHD_BIN $SSHD_OPTS -o "PidFile=$SSHD_PIDFILE" 53 54 # Remember status and be verbose 55 rc_status -v 56 ;; 57 stop) 58 echo -n "Shutting down SSH daemon" 59 ## Stop daemon with killproc(8) and if this fails 60 ## set echo the echo return value. 61 62 killproc -p $SSHD_PIDFILE -TERM $SSHD_BIN 63 64 # Remember status and be verbose 65 rc_status -v 66 ;; 67 try-restart) 68 ## Stop the service and if this succeeds (i.e. the 69 ## service was running before), start it again. 70 $0 status >/dev/null && $0 restart 71 72 # Remember status and be quiet 73 rc_status 74 ;; 75 restart) 76 ## Stop the service and regardless of whether it was 77 ## running or not, start it again. 78 $0 stop 79 $0 start 80 81 # Remember status and be quiet 82 rc_status 83 ;; 84 force-reload|reload) 85 ## Signal the daemon to reload its config. Most daemons 86 ## do this on signal 1 (SIGHUP). 87 88 echo -n "Reload service sshd" 89 90 killproc -p $SSHD_PIDFILE -HUP $SSHD_BIN 91 92 rc_status -v 93 94 ;; 95 status) 96 echo -n "Checking for service sshd " 97 ## Check status with checkproc(8), if process is running 98 ## checkproc will return with exit status 0. 99 100 # Status has a slightly different for the status command: 101 # 0 - service running 102 # 1 - service dead, but /var/run/ pid file exists 103 # 2 - service dead, but /var/lock/ lock file exists 104 # 3 - service not running 105 106 checkproc -p $SSHD_PIDFILE $SSHD_BIN 107 108 rc_status -v 109 ;; 110 probe) 111 ## Optional: Probe for the necessity of a reload, 112 ## give out the argument which is required for a reload. 113 114 test /etc/ssh/sshd_config -nt $SSHD_PIDFILE && echo reload 115 ;; 116 *) 117 echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" 118 exit 1 119 ;; 120esac 121rc_exit 122