有没有像"timeout"这样的函数可以跳过命令而不是杀死它?



我写了一个无限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处理。感谢乔纳森和查尔斯。

相关内容

  • 没有找到相关文章

最新更新