@@ -314,40 +314,53 @@ node_running() {
314314# Helper: Stop all running node processes with verification
315315stop_all_processes () {
316316 local timeout=" ${1:- 15} "
317+ local use_sudo=" "
317318
318319 step " Stopping any running node processes..."
319320
321+ # Determine if we need sudo (processes may be owned by root)
322+ if [[ $( id -u) -ne 0 ]]; then
323+ if pgrep -f " pchaind|cosmovisor|push-validator" > /dev/null 2>&1 ; then
324+ use_sudo=" sudo"
325+ fi
326+ fi
327+
320328 # 1. Try graceful stop via manager first
321329 if [[ -x " $MANAGER_BIN " ]]; then
322- " $MANAGER_BIN " stop > /dev/null 2>&1 || true
330+ $use_sudo " $MANAGER_BIN " stop > /dev/null 2>&1 || true
323331 sleep 2
324332 fi
325333
326- # 2. Kill cosmovisor processes
327- pkill -f " cosmovisor.*run" 2> /dev/null || true
334+ # 2. Kill push-validator processes (logs, etc.)
335+ $use_sudo pkill -f " push-validator" 2> /dev/null || true
336+
337+ # 3. Kill cosmovisor processes
338+ $use_sudo pkill -f " cosmovisor.*run" 2> /dev/null || true
328339
329- # 3 . Kill pchaind processes
330- pkill -f " pchaind.*start" 2> /dev/null || true
340+ # 4 . Kill pchaind processes
341+ $use_sudo pkill -f " pchaind.*start" 2> /dev/null || true
331342
332- # 4 . Wait and verify all processes stopped
343+ # 5 . Wait and verify all processes stopped
333344 local elapsed=0
334345 while [[ $elapsed -lt $timeout ]]; do
335346 if ! pgrep -f " cosmovisor.*run" > /dev/null 2>&1 && \
336- ! pgrep -f " pchaind.*start" > /dev/null 2>&1 ; then
347+ ! pgrep -f " pchaind.*start" > /dev/null 2>&1 && \
348+ ! pgrep -f " push-validator" > /dev/null 2>&1 ; then
337349 ok " All processes stopped"
338350 return 0
339351 fi
340352 sleep 1
341353 (( elapsed++ ))
342354 done
343355
344- # 5 . Force kill if still running
356+ # 6 . Force kill if still running
345357 verbose " Processes still running, force killing..."
346- pkill -9 -f " cosmovisor.*run" 2> /dev/null || true
347- pkill -9 -f " pchaind.*start" 2> /dev/null || true
358+ $use_sudo pkill -9 -f " push-validator" 2> /dev/null || true
359+ $use_sudo pkill -9 -f " cosmovisor.*run" 2> /dev/null || true
360+ $use_sudo pkill -9 -f " pchaind.*start" 2> /dev/null || true
348361 sleep 1
349362
350- # 6 . Final check
363+ # 7 . Final check
351364 if pgrep -f " cosmovisor.*run" > /dev/null 2>&1 || \
352365 pgrep -f " pchaind.*start" > /dev/null 2>&1 ; then
353366 err " Failed to stop all processes"
@@ -358,10 +371,11 @@ stop_all_processes() {
358371 return 0
359372}
360373
361- # Helper: Check if any node processes are running (cosmovisor or pchaind )
374+ # Helper: Check if any node processes are running (cosmovisor, pchaind, or push-validator )
362375any_node_running () {
363376 pgrep -f " cosmovisor.*run" > /dev/null 2>&1 && return 0
364377 pgrep -f " pchaind.*start" > /dev/null 2>&1 && return 0
378+ pgrep -f " push-validator" > /dev/null 2>&1 && return 0
365379 # Also check via manager status if available
366380 if [[ -x " $MANAGER_BIN " ]]; then
367381 node_running && return 0
0 commit comments