だから私はサーバーアプリケーションとそのためのいくつかのクライアントアプリケーションを開発しました。再構築するたびにサーバーを起動し(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 &
必要に応じて睡眠時間を変更することもできます。