]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - crypto/openssh/contrib/suse/rc.sshd
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / crypto / openssh / contrib / suse / rc.sshd
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
21 SSHD_BIN=/usr/sbin/sshd
22 test -x $SSHD_BIN || exit 5
23
24 SSHD_SYSCONFIG=/etc/sysconfig/ssh
25 test -r $SSHD_SYSCONFIG || exit 6
26 . $SSHD_SYSCONFIG
27
28 SSHD_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
42 rc_reset
43
44 case "$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         ;;
120 esac
121 rc_exit