加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

解决shell、perl及ssh脚本中的超时问题

发布时间:2016-05-27 08:08:57 所属栏目:Linux 来源:网络整理
导读:大家有时候执行一个脚本,因为脚本中有些程序的假死和超时,影响了我们对下一步的判断。随意我们有必要设置对函数和进程的超时设置,让他在一段时间没有反应后

大家有时候执行一个脚本,因为脚本中有些程序的假死和超时,影响了我们对下一步的判断。随意我们有必要设置对函数和进程的超时设置,让他在一段时间没有反应后,return一个状态。

在命令参数里ssh -o ServerAliveInterval=60  这样子就能控制到60秒。

比如ClientAliveInterval=15,ClientAliveCountMax=3,那就会在15秒发送一次,30秒发送一次,45秒发送一次,如果三次都失败,收回这个链接

但是这个参数不是太好用,大家可以后面加个 sleep 100 试试。

#!/bin/sh    

timeout()    
{    
        waitfor=3    
        command=$*    
        $command &    
        commandpid=$!    

        ( sleep $waitfor ; kill -9 $commandpid > /dev/null 2>&1 ) &    

        watchdog=$!    
        sleeppid=$PPID    
        wait $commandpid > /dev/null 2>&1     

        kill $sleeppid > /dev/null 2>&1    
}    

test123()    
{    

        ifconfig    
        sleep 10    
        ifconfig    
#        curl htpp://www.facebook.com    
}    

timeout test123

解决shell、perl及ssh脚本中的超时问题

基本控制到 3s 左右

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读