解决shell、perl及ssh脚本中的超时问题
发布时间:2016-09-22 22:14:09 所属栏目: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
基本控制到 3s 左右 (编辑:源码门户网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读


