因此,我為其開發了伺服器應用程式和一些客戶端應用程式。每次重建後,我都會啟動我的伺服器(這往往會在 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 &
如果您願意,您也可以更改睡眠時間。


