
그래서 저는 서버 앱과 이를 위한 일부 클라이언트 앱을 개발합니다. 재구축할 때마다 서버를 시작하고(약 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 &
sleep
Bash 에 대한 대안이 있는지 궁금합니다 . 최소 5초 정도 기다렸다가 프로세스의 CPU 활성도가 X
1%로 낮아질 때까지 기다린 다음 필요한 것을 실행하는 것처럼요?
답변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 &
원하는 경우 수면 시간을 변경할 수도 있습니다.