그래서 저는 서버 애플리케이션과 이를 위한 일부 클라이언트 애플리케이션을 개발했습니다. 재구축할 때마다 서버를 시작하고(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에 대한 다른 옵션이 있는지 궁금합니다. 프로세스의 CPU 활동이 X
1%로 떨어질 때까지 5초 이상 기다린 다음 필요한 작업을 시작하는 것과 같습니다.
답변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 &
원하는 경우 수면 시간을 변경할 수도 있습니다.