diff options
author | John Ogness <adelielinux@ogness.net> | 2021-06-29 21:15:38 +0200 |
---|---|---|
committer | John Ogness <adelielinux@ogness.net> | 2021-06-29 21:44:20 +0200 |
commit | 2c8c34fb270ee6c87aae21b94abd11d42eb9d22f (patch) | |
tree | ee728d1b463c9f664976ffecb52607629f41f4e7 /system/openssh/sshd.initd | |
parent | 607ac46b45782d21cd19ab42993800bfeba3620e (diff) | |
download | packages-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-x | system/openssh/sshd.initd | 7 |
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 |