diff --git a/util/flash_ec b/util/flash_ec index 5b05604d76..7635723296 100755 --- a/util/flash_ec +++ b/util/flash_ec @@ -341,13 +341,19 @@ function claim_pty() { "'cros_sdk --no-ns-pid' (see crbug.com/444931 for details)" fi - FROZEN_PIDS=$(lsof -FR 2>/dev/null -- $1 | tr -d 'pR') + pids=$(lsof -FR 2>/dev/null -- $1 | tr -d 'pR') + FROZEN_PIDS="" # reverse order to SIGSTOP parents before children - for pid in $(echo ${FROZEN_PIDS} | tac -s " "); do - info "Sending SIGSTOP to process ${pid}!" - sleep 0.02 - kill -STOP ${pid} + for pid in $(echo ${pids} | tac -s " "); do + if ps -o cmd= "${pid}" | grep -qE "(servod|/sbin/init)"; then + info "Skip stopping servod or init: process ${pid}." + else + info "Sending SIGSTOP to process ${pid}!" + FROZEN_PIDS+=" ${pid}" + sleep 0.02 + kill -STOP ${pid} + fi done }