启动脚本中避免目标地址为域名的网络连接
2015-06-13 23:04
369 查看
项目启动脚本想要判断当前网络环境(内网是否连通),于是加了如下脚本代码:
解决方法将脚本改成如下:
原因:
域名解析的过程阻塞的,即请求域名服务器解析目标域名为IP的操作是阻塞的,当服务器无网络,则网络请求阻塞在域名解析的步骤。
以上的问题同样可能会出现在linux c函数gethostbyname(hostname)中,同样,也应该避免进程建立之前(启动完成判断,比如建立pid之前)调用改函数。
ping -c1 -W1 xxx.xxx.com > /dev/null if [ $? = 0 ]; then我们的项目启动脚本安装到/etc/init.d/下面了,因此会随服务器重启而启动。于是就出现了下面的情景: 某些服务器启动花了几十分钟时间才启动完成。 这部分服务器在启动的时候网络不通。
解决方法将脚本改成如下:
ping -c1 -W1 172.xxx.xxx.xx > /dev/null if [ $? = 0 ]; then将脚本中连接测试的目标从域名改成了IP,这个问题就解决了。
原因:
域名解析的过程阻塞的,即请求域名服务器解析目标域名为IP的操作是阻塞的,当服务器无网络,则网络请求阻塞在域名解析的步骤。
以上的问题同样可能会出现在linux c函数gethostbyname(hostname)中,同样,也应该避免进程建立之前(启动完成判断,比如建立pid之前)调用改函数。
相关文章推荐
- 什么是A记录?什么是别名记录(CNAME)?什么是MX记录?
- VBS脚本写的Windows硬件检测工具分享
- 用vbscript实现隐藏任务栏图标的脚本
- 用autoit编写第一个脚本(Hello World)
- VBS调用WMI快速关闭IE的脚本
- Oracle阻塞(blockingblocked)实例详解
- 收集的ROS防火墙脚本
- JSP脚本漏洞面面观
- 不错的批处理脚本 第一部分
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- 不错的批处理脚本实例代码 第二部分
- 使用脚本和批处理清除电脑中的痕迹的代码第1/2页
- 让你的脚本说话
- Lua脚本获取喜马拉雅MP3音频地址
- 科学知识:同步、异步、阻塞和非阻塞区别
- SQL2008中SQL应用之-阻塞(Blocking)应用分析
- 编程界主流脚本编程语言的比较和选择
- 批量文件查找替换功能的vbs脚本
- Powershell脚本的4种执行权限介绍