最近ubuntu12.04.3版本的服务器重启了一次,重启以后发现以前跑的挺好的程序启动不了.这就怪了,以前工作好好的,现在一重启就不行,服务器又没有升级。
第一步我怀疑是配置文件被谁查看的时候无意修改了,于是重新把配置文件检查了一下,放上去,依然不行,同样的错误.那么就是其它原因的错误了.编译了一个debug版本的,拿去过启动.果然又挂了,生成了core.gdb一下,发现是boost asio: “host not found (authorative)”,一看到有host,我想到可能是域名解决出问题了.于是我ping www.163.com,发现不通,那么问题比较清楚了,就是因为无DNS导致的.如何解决DNS问题嘞.我记得阿里云发布了公开的DNS,转到它们的网站,上面对utuntu这么提议
wget http://www.alidns.com/static/soft/SetAliDNS.sh -O SetAliDNS.sh && chmod +x SetAliDNS.sh && sudo ./SetAliDNS.sh
果断执行,再ping 163就没有问题了.看一下
#!/bin/sh
head=/etc/resolvconf/resolv.conf.d/head
config_resolvconf(){
cp -a ${head} ${head}.save
cat >${head} <<EOF
options attempts=2 timeout=2 rotate
nameserver 223.5.5.5
nameserver 223.6.6.6
EOF
/sbin/resolvconf -u
echo "Reconfig /etc/resolv.conf success."
}
restore_resolvconf(){
if [ -e ${head}.save ];then
cat ${head}.save > ${head}
else
true > ${head}
fi
/sbin/resolvconf -u
echo "Resotre /etc/resolv.conf success."
}
action=$1
if [ $(cat /etc/issue |grep -iwc ubuntu) -ne 1 ];then
echo "Only support Ubuntu OS"
exit
fi
if [ "${action}" != "restore" ];then
config_resolvconf
else
restore_resolvconf
fi
echo '--------------------------------------'
cat /etc/resolv.conf
#End
还是修改的/etc/resolv.conf,可以立即生效.但是有个缺点,就是下次重启服务器的时候,估计还是要重新设置啊.有没有解决的办法?有,但需要重启网络服务.