diff --git a/node/poor_mans_cd.sh b/node/poor_mans_cd.sh index 402599a..cb635d9 100755 --- a/node/poor_mans_cd.sh +++ b/node/poor_mans_cd.sh @@ -2,20 +2,40 @@ start_process() { GOEXPERIMENT=arenas go run ./... & - process_pid=$! - child_process_pid=$(pgrep -P $process_pid) + local process_pid=$! + local child_process_pid=$(pgrep -P $process_pid) + echo "Process started with PID $process_pid and child PID $child_process_pid" } is_process_running() { + local process_pid=$(ps -ef | grep "exe/node" | grep -v grep | awk '{print $2}') ps -p $process_pid > /dev/null 2>&1 return $? } kill_process() { - kill $process_pid - kill $child_process_pid + local process_count=$(ps -ef | grep "exe/node" | grep -v grep | wc -l) + local process_pids=$(ps -ef | grep "exe/node" | grep -v grep | awk '{print $2}' | xargs) + + if [ $process_count -gt 0 ]; then + echo "killing processes $process_pids" + kill $process_pids + + local child_process_count=$(pgrep -P $process_pids | wc -l) + local child_process_pids=$(pgrep -P $process_pids | xargs) + if [ $child_process_count -gt 0 ]; then + echo "killing child processes $child_process_pids" + kill $child_process_pids + else + echo "no child processes running" + fi + else + echo "no processes running" + fi } +kill_process + start_process while true; do