SSH命令挂起

时间:2014-02-05 11:13:44

标签: unix ssh hang

我在远程系统上执行的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

1 个答案:

答案 0 :(得分:1)

问题是ssh命令从stdin读取,这会将输入消耗到你的while循环。

将ssh命令更改为ssh -n命令。也就是说,添加" -n" ssh命令的选项。