Browse Source

sysupgrade: don't kill our own parent

Add the parent of the sysupgrade script to the list of pids not getting
killed

Signed-off-by: Mat Trudel <[email protected]>
Signed-off-by: John Crispin <[email protected]>
Mat Trudel 8 years ago
parent
commit
2dca7177e7
1 changed files with 3 additions and 2 deletions
  1. 3 2
      package/base-files/files/lib/upgrade/stage2

+ 3 - 2
package/base-files/files/lib/upgrade/stage2

@@ -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