From: Michael Tremer Date: Tue, 27 Oct 2020 13:20:56 +0000 (+0100) Subject: OpenSSH: Fix initscript to actually kill the daemon X-Git-Tag: v2.25-core152~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=acc8336f945b66d66fc15417905ce6bf2707876f;p=ipfire-2.x.git OpenSSH: Fix initscript to actually kill the daemon The SSH daemon was not terminated properly because killproc tried to terminate all processes with that name. That caused that the master daemon respawned some processed which were therefore not killed because killproc determined a list of PIDs only once before starting sending signals. This patch only kills the master process which is being determined by using sshd's pid file. That results in all established connections not being interrupted any more. Furthermore, the loadproc function checks if any processes with the given name are already running which could be true if there are any connections still open. That check is being disabled with the -f switch and sshd will always be launched. "/etc/init.d/sshd stop" might now print FAIL if only the master process, but no connection processes were terminated. Signed-off-by: Michael Tremer --- diff --git a/src/initscripts/system/sshd b/src/initscripts/system/sshd index 7b4092d38d..c3c02adc1b 100644 --- a/src/initscripts/system/sshd +++ b/src/initscripts/system/sshd @@ -25,7 +25,7 @@ case "$1" in [ -e "/var/ipfire/remote/enablessh" ] || exit 0 # SSH is not enabled boot_mesg "Starting SSH Server..." - loadproc /usr/sbin/sshd + loadproc -f /usr/sbin/sshd # Also prevent ssh from being killed by out of memory conditions ( @@ -37,7 +37,7 @@ case "$1" in stop) boot_mesg "Stopping SSH Server..." - killproc /usr/sbin/sshd + killproc -p "/var/run/sshd.pid" /usr/sbin/sshd ;; reload)