sysupgrade: don't kill our own parent
authorMat Trudel <mat@geeky.net>
Tue, 7 Nov 2017 19:55:54 +0000 (20:55 +0100)
committerJohn Crispin <john@phrozen.org>
Wed, 15 Nov 2017 20:11:23 +0000 (21:11 +0100)
Add the parent of the sysupgrade script to the list of pids not getting
killed

Signed-off-by: Mat Trudel <mat@geeky.net>
Signed-off-by: John Crispin <john@phrozen.org>
package/base-files/files/lib/upgrade/stage2

index d7f92a4f3506d0a26d7178320eaba5149d177617..3985d8fd7eca9de22b5480f019c137891fc77a32 100755 (executable)
@@ -84,6 +84,7 @@ kill_remaining() { # [ <signal> [ <loop> ] ]
        local loop="${2:-0}"
        local run=true
        local stat
+       local proc_ppid=$(cut -d' ' -f4  /proc/$$/stat)
 
        echo -n "Sending $sig to remaining processes ... "
 
@@ -96,8 +97,8 @@ kill_remaining() { # [ <signal> [ <loop> ] ]
                        read pid name state ppid rest < $stat
                        name="${name#(}"; name="${name%)}"
 
-                       # Skip PID1, ourself and our children
-                       [ $pid -ne 1 -a $pid -ne $$ -a $ppid -ne $$ ] || continue
+                       # Skip PID1, our parent, ourself and our children
+                       [ $pid -ne 1 -a $pid -ne $proc_ppid -a $pid -ne $$ -a $ppid -ne $$ ] || continue
 
                        local cmdline
                        read cmdline < /proc/$pid/cmdline