我写了一个无限while-loop来运行4个脚本,一次两个,但是当一个脚本执行时,它等待它完成,而不是循环。
while true; do
script1.sh & script2.sh
script3.sh & script4.sh
done
这次我添加了timeout,它杀死了一个活动的脚本。通常每个脚本运行一个小时。
我通过添加PID
来防止活动脚本再次运行,每个脚本都添加了这个
PIDFILE=$pid.pd
if [ -f $PIDFILE ]
then
PID=$(cat $PIDFILE)
ps -p $PID > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "Process already running"
exit 1
else
## rocess not found assume not running
echo $$ > $PIDFILE
if [ $? -ne 0 ]
then
echo "Could not create PID file"
exit 1
fi
fi
else
echo $$ > $PIDFILE
if [ $? -ne 0 ]
then
echo "Could not create PID file"
exit 1
fi
fi
//insert commands here
rm $PIDFILE
通过使用&
在后台运行每个脚本
while true; do
script1.sh & script2.sh &
sleep 1.5
script3.sh & script4.sh &
sleep 1.5
done
和sleep
用于cpu处理。感谢乔纳森和查尔斯。