mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-16 14:03:00 +02:00
The SSH init script only kills the main daemon which leads to any child processes (for remaining connections) being untouched. killproc returns 4 (unknown error) when not all processes were killed which is not intended here. Therefore we ignore the error and do not pause the shut down process for a minute. Fixes: #12544 Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
65 lines
1.4 KiB
Bash
65 lines
1.4 KiB
Bash
#!/bin/sh
|
|
# Begin $rc_base/init.d/sshd
|
|
|
|
# Based on sysklogd script from LFS-3.1 and earlier.
|
|
# Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org
|
|
|
|
#$LastChangedBy: bdubbs $
|
|
#$Date: 2006-04-15 17:34:16 -0500 (Sat, 15 Apr 2006) $
|
|
|
|
. /etc/sysconfig/rc
|
|
. $rc_functions
|
|
|
|
case "$1" in
|
|
start)
|
|
for algo in rsa ecdsa ed25519; do
|
|
keyfile="/etc/ssh/ssh_host_${algo}_key"
|
|
|
|
# If the key already exists, there is nothing to do.
|
|
[ -e "${keyfile}" ] && continue
|
|
|
|
boot_mesg "Generating SSH key (${algo})..."
|
|
ssh-keygen -qf "${keyfile}" -N '' -t ${algo}
|
|
evaluate_retval
|
|
done
|
|
|
|
[ -e "/var/ipfire/remote/enablessh" ] || exit 0 # SSH is not enabled
|
|
boot_mesg "Starting SSH Server..."
|
|
loadproc -f /usr/sbin/sshd
|
|
|
|
# Also prevent ssh from being killed by out of memory conditions
|
|
(
|
|
sleep 3
|
|
pid=$(cat /var/run/sshd.pid 2>/dev/null)
|
|
[ -n "${pid}" ] && echo "-16" > "/proc/${pid}/oom_score_adj"
|
|
) &
|
|
;;
|
|
|
|
stop)
|
|
boot_mesg "Stopping SSH Server..."
|
|
killproc -p "/var/run/sshd.pid" /usr/sbin/sshd || true
|
|
;;
|
|
|
|
reload)
|
|
boot_mesg "Reloading SSH Server..."
|
|
reloadproc /usr/sbin/sshd
|
|
;;
|
|
|
|
restart)
|
|
$0 stop
|
|
sleep 1
|
|
$0 start
|
|
;;
|
|
|
|
status)
|
|
statusproc /usr/sbin/sshd
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 {start|stop|reload|restart|status}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# End $rc_base/init.d/sshd
|