我在远程系统上执行的while循环中有SSH命令。而且我看到它执行的次数越多,它就越有可能被挂起。任何人都可以告诉我是否有任何SSH配置或选项可用于防止这种情况。
if [ -n "${services}" ]
then
while [ $flag -eq 1 ]
do
for list in $services
do
outcome=`ssh $user@$remoteserver "svcs $list" | tail -1 | awk '{print $1}'`
if [ $outcome != "online" ]
then
flag=1
break
else
flag=0
fi
done
done
else
echo "Failed to get remoteserver list"
fi
答案 0 :(得分:1)
问题是ssh命令从stdin读取,这会将输入消耗到你的while循环。
将ssh命令更改为ssh -n命令。也就是说,添加" -n" ssh命令的选项。