summaryrefslogtreecommitdiff
path: root/system/openssh/sshd.initd
diff options
context:
space:
mode:
authorJohn Ogness <adelielinux@ogness.net>2021-06-29 21:15:38 +0200
committerJohn Ogness <adelielinux@ogness.net>2021-06-29 21:44:20 +0200
commit2c8c34fb270ee6c87aae21b94abd11d42eb9d22f (patch)
treeee728d1b463c9f664976ffecb52607629f41f4e7 /system/openssh/sshd.initd
parent607ac46b45782d21cd19ab42993800bfeba3620e (diff)
downloadpackages-2c8c34fb270ee6c87aae21b94abd11d42eb9d22f.tar.gz
packages-2c8c34fb270ee6c87aae21b94abd11d42eb9d22f.tar.bz2
packages-2c8c34fb270ee6c87aae21b94abd11d42eb9d22f.tar.xz
packages-2c8c34fb270ee6c87aae21b94abd11d42eb9d22f.zip
system/openssh: ignore initscript process on shutdown
On shutdown, the initscript will kill any processes that match sshd. However, since the initscript itself is called sshd, it ends up seeing/killing itself! Avoid this by only killing processes where /proc/$PID/exe is pointing to $SSHD_BINARY. Signed-off-by: John Ogness <adelielinux@ogness.net>
Diffstat (limited to 'system/openssh/sshd.initd')
-rwxr-xr-xsystem/openssh/sshd.initd7
1 files changed, 6 insertions, 1 deletions
diff --git a/system/openssh/sshd.initd b/system/openssh/sshd.initd
index 065519174..e13924e2c 100755
--- a/system/openssh/sshd.initd
+++ b/system/openssh/sshd.initd
@@ -82,7 +82,12 @@ stop() {
eend $?
if [ "$RC_RUNLEVEL" = "shutdown" ]; then
- _sshd_pids=$(pgrep "${SSHD_BINARY##*/}")
+ local _p _sshd_pids
+ for _p in $(pgrep "${SSHD_BINARY##*/}"); do
+ [ "$(realpath /proc/$_p/exe)" = "${SSHD_BINARY}" ] \
+ || continue
+ _sshd_pids="$_sshd_pids $_p"
+ done
if [ -n "$_sshd_pids" ]; then
ebegin "Shutting down ssh connections"
kill -TERM $_sshd_pids >/dev/null 2>&1