1180740Sdes#! /bin/sh 2180740Sdes# Copyright (c) 1995-2000 SuSE GmbH Nuernberg, Germany. 3180740Sdes# 4180740Sdes# Author: Jiri Smid <feedback@suse.de> 5180740Sdes# 6180740Sdes# /etc/init.d/sshd 7180740Sdes# 8180740Sdes# and symbolic its link 9180740Sdes# 10180740Sdes# /usr/sbin/rcsshd 11180740Sdes# 12180740Sdes### BEGIN INIT INFO 13180740Sdes# Provides: sshd 14180740Sdes# Required-Start: $network $remote_fs 15180740Sdes# Required-Stop: $network $remote_fs 16180740Sdes# Default-Start: 3 5 17180740Sdes# Default-Stop: 0 1 2 6 18180740Sdes# Description: Start the sshd daemon 19180740Sdes### END INIT INFO 20180740Sdes 21180740SdesSSHD_BIN=/usr/sbin/sshd 22180740Sdestest -x $SSHD_BIN || exit 5 23180740Sdes 24180740SdesSSHD_SYSCONFIG=/etc/sysconfig/ssh 25180740Sdestest -r $SSHD_SYSCONFIG || exit 6 26180740Sdes. $SSHD_SYSCONFIG 27180740Sdes 28180740SdesSSHD_PIDFILE=/var/run/sshd.init.pid 29180740Sdes 30180740Sdes. /etc/rc.status 31180740Sdes 32180740Sdes# Shell functions sourced from /etc/rc.status: 33180740Sdes# rc_check check and set local and overall rc status 34180740Sdes# rc_status check and set local and overall rc status 35180740Sdes# rc_status -v ditto but be verbose in local rc status 36180740Sdes# rc_status -v -r ditto and clear the local rc status 37180740Sdes# rc_failed set local and overall rc status to failed 38180740Sdes# rc_reset clear local rc status (overall remains) 39180740Sdes# rc_exit exit appropriate to overall rc status 40180740Sdes 41180740Sdes# First reset status of this service 42180740Sdesrc_reset 43180740Sdes 44180740Sdescase "$1" in 45180740Sdes start) 46225825Sdes # Generate any missing host keys 47225825Sdes ssh-keygen -A 48180740Sdes echo -n "Starting SSH daemon" 49180740Sdes ## Start daemon with startproc(8). If this fails 50180740Sdes ## the echo return value is set appropriate. 51180740Sdes 52248613Sdes startproc -f -p $SSHD_PIDFILE $SSHD_BIN $SSHD_OPTS -o "PidFile=$SSHD_PIDFILE" 53180740Sdes 54180740Sdes # Remember status and be verbose 55180740Sdes rc_status -v 56180740Sdes ;; 57180740Sdes stop) 58180740Sdes echo -n "Shutting down SSH daemon" 59180740Sdes ## Stop daemon with killproc(8) and if this fails 60180740Sdes ## set echo the echo return value. 61180740Sdes 62248613Sdes killproc -p $SSHD_PIDFILE -TERM $SSHD_BIN 63180740Sdes 64180740Sdes # Remember status and be verbose 65180740Sdes rc_status -v 66180740Sdes ;; 67180740Sdes try-restart) 68180740Sdes ## Stop the service and if this succeeds (i.e. the 69180740Sdes ## service was running before), start it again. 70180740Sdes $0 status >/dev/null && $0 restart 71180740Sdes 72180740Sdes # Remember status and be quiet 73180740Sdes rc_status 74180740Sdes ;; 75180740Sdes restart) 76180740Sdes ## Stop the service and regardless of whether it was 77180740Sdes ## running or not, start it again. 78180740Sdes $0 stop 79180740Sdes $0 start 80180740Sdes 81180740Sdes # Remember status and be quiet 82180740Sdes rc_status 83180740Sdes ;; 84180740Sdes force-reload|reload) 85180740Sdes ## Signal the daemon to reload its config. Most daemons 86180740Sdes ## do this on signal 1 (SIGHUP). 87180740Sdes 88180740Sdes echo -n "Reload service sshd" 89180740Sdes 90248613Sdes killproc -p $SSHD_PIDFILE -HUP $SSHD_BIN 91180740Sdes 92180740Sdes rc_status -v 93180740Sdes 94180740Sdes ;; 95180740Sdes status) 96180740Sdes echo -n "Checking for service sshd " 97180740Sdes ## Check status with checkproc(8), if process is running 98180740Sdes ## checkproc will return with exit status 0. 99180740Sdes 100180740Sdes # Status has a slightly different for the status command: 101180740Sdes # 0 - service running 102180740Sdes # 1 - service dead, but /var/run/ pid file exists 103180740Sdes # 2 - service dead, but /var/lock/ lock file exists 104180740Sdes # 3 - service not running 105180740Sdes 106248613Sdes checkproc -p $SSHD_PIDFILE $SSHD_BIN 107180740Sdes 108180740Sdes rc_status -v 109180740Sdes ;; 110180740Sdes probe) 111180740Sdes ## Optional: Probe for the necessity of a reload, 112180740Sdes ## give out the argument which is required for a reload. 113180740Sdes 114180740Sdes test /etc/ssh/sshd_config -nt $SSHD_PIDFILE && echo reload 115180740Sdes ;; 116180740Sdes *) 117180740Sdes echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" 118180740Sdes exit 1 119180740Sdes ;; 120180740Sdesesac 121180740Sdesrc_exit 122