시스템 부하를 고려한 `수면 시간`의 대안은 무엇입니까?

시스템 부하를 고려한 `수면 시간`의 대안은 무엇입니까?

그래서 저는 서버 앱과 이를 위한 일부 클라이언트 앱을 개발합니다. 재구축할 때마다 서버를 시작하고(약 2초 동안 모든 서비스를 로드하는 경향이 있음) 클라이언트를 시작합니다... 그래서 그의 것이 제가 가지고 있는 것입니다.스크립트:

cd $RUN_DIR
nohup ./CloudServer >& /dev/null &
sleep 5
nohup ./CloudClient --server=localhost --username=$ROBOT1_NAME --robot >& /dev/null &
nohup ./CloudClient --server=localhost --username=$ROBOT2_NAME --robot >& /dev/null &

sleepBash 에 대한 대안이 있는지 궁금합니다 . 최소 5초 정도 기다렸다가 프로세스의 CPU 활성도가 X1%로 낮아질 때까지 기다린 다음 필요한 것을 실행하는 것처럼요?

답변1

grep 기준 및 CPU 임계값과 같은 일부 항목을 변경해야 할 수도 있지만 여기에는 다음이 포함됩니다.

#!/bin/bash
cd $RUN_DIR
nohup ./CloudServer >& /dev/null &
PID=`ps aux |grep $RUN_DIR/CloudServer|grep -v grep| head -n 1 |awk '{print $2}'`

while [ `top -n 1 -b -p $PID | grep $PID |awk '{print $9"/1"}' |bc` -gt 1 ]
do
        sleep 2
        echo Server still starting up ...
done
echo Server is now Idle
nohup ./CloudClient --server=localhost --username=$ROBOT1_NAME --robot >& /dev/null &
nohup ./CloudClient --server=localhost --username=$ROBOT2_NAME --robot >& /dev/null &

원하는 경우 수면 시간을 변경할 수도 있습니다.

관련 정보