blob: fe09962804e874f80f8c4aa76b3eb5772e065cf2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
#!/bin/sh
#
# sshd sshd (secure shell daemon)
#
# chkconfig: 345 22 88
#
# description: sshd (secure shell daemon) is a server part of the ssh suite. \
# Ssh can be used for remote login, remote file copying, TCP port \
# forwarding etc. Ssh offers strong encryption and authentication.
# Source function library
. /etc/rc.d/init.d/functions
# Get network config
. /etc/sysconfig/network
SSHD_OOM_ADJUST=-1000
PIDFILE=/var/run/sshd.pid
# Get service config
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
# Check that networking is up.
if is_yes "${NETWORKING}"; then
if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
msg_network_down "OpenSSH"
exit 1
fi
else
exit 0
fi
adjust_oom() {
if [ -e $PIDFILE ]; then
for pid in $(cat $PIDFILE); do
echo "$SSHD_OOM_ADJUST" 2>/dev/null > /proc/$pid/oom_score_adj
done
fi
}
checkconfig() {
ssh_gen_keys
/usr/sbin/sshd -t || exit 1
}
ssh_gen_keys() {
@@LIBEXECDIR@@/sshd-keygen
}
start() {
# Check if the service is already running?
if status --pidfile $PIDFILE sshd >/dev/null; then
msg_already_running "OpenSSH"
return
fi
checkconfig
if [ "$(echo /etc/ssh/ssh_host*key)" = "/etc/ssh/ssh_host*key" ]; then
msg_not_running "OpenSSH"
nls "No SSH host key found! You must run \"%s init\" first." "$0"
exit 1
fi
if is_yes "$IPV4_NETWORKING" && is_no "$IPV6_NETWORKING"; then
OPTIONS="$OPTIONS -4"
fi
if is_yes "$IPV6_NETWORKING" && is_no "$IPV4_NETWORKING"; then
OPTIONS="$OPTIONS -6"
fi
msg_starting "OpenSSH"
daemon --pidfile $PIDFILE /usr/sbin/sshd $OPTIONS
RETVAL=$?
adjust_oom
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd
}
stop() {
if [ ! -f /var/lock/subsys/sshd ]; then
msg_not_running "OpenSSH"
return
fi
msg_stopping "OpenSSH"
# we use start-stop-daemon to stop sshd, as it is unacceptable for such
# critical service as sshd to kill it by procname, but unfortunately
# rc-scripts does not provide way to kill *only* by pidfile
start-stop-daemon --stop --quiet --pidfile $PIDFILE && ok || fail
rm -f /var/lock/subsys/sshd >/dev/null 2>&1
}
reload() {
if [ ! -f /var/lock/subsys/sshd ]; then
msg_not_running "OpenSSH"
RETVAL=7
return
fi
checkconfig
msg_reloading "OpenSSH"
killproc sshd -HUP
RETVAL=$?
}
condrestart() {
if [ ! -f /var/lock/subsys/sshd ]; then
msg_not_running "OpenSSH"
RETVAL=$1
return
fi
checkconfig
stop
start
}
RETVAL=0
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
checkconfig
stop
start
;;
try-restart)
condrestart 0
;;
reload|force-reload)
reload
;;
configtest)
checkconfig
;;
init)
nls "Now the SSH host key will be generated. Please note, that if you"
nls "will use password for the key, you will need to type it on each"
nls "reboot."
ssh_gen_keys
;;
status)
status --pidfile $PIDFILE sshd
exit $?
;;
*)
msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|init|status}"
exit 3
esac
exit $RETVAL
|