Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了由于ICMP主机无法访问,Linux ping命令会提前退出大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

自动脚本现在在机器上运行shutdown -r,在30秒延迟后,使用ping来确定机器何时可用.我最近将操作系统从Centos 5切换到了Oracle Linux 6,发现ping的行为发生了变化. 我使用ping同时具有计数(-c10),截止时间(-w360)和延迟(-W1),这应该等待最多五分钟才能从机器中成功回复十次. 我观察自己的机器在30秒后生成目标主机无法访问的消息,导致ping在3
@H_674_10@
@L_944_0@脚本现在在机器上运行shutdown -r,在30秒延迟后,使用ping来确定机器何时可用.我最近将操作系统从Centos 5切换到了Oracle Linux 6,发现ping的行为发生了变化.

我使用ping同时具有计数(-c10),截止时间(-w360)和延迟(-W1),这应该等待最多五分钟才能从机器中成功回复十次.

我观察自己的机器在30秒后生成目标主机无法访问的消息,导致ping在3错误退出,即.远在我期望的截止日期之前.例如.示例在~37秒后退出

[cs@bst1 ~]# time ping -c10 -w360 -W1 hostother; echo $?
PING hostother (10.210.51.155) 56(84) bytes of data.
From bst1 (10.210.51.139) icmp_seq=36 DesTination Host Unreachable
From bst1 (10.210.51.139) icmp_seq=37 DesTination Host Unreachable
From bst1 (10.210.51.139) icmp_seq=38 DesTination Host Unreachable

--- hostother ping statistics ---
38 packets transmitted,0 received,+3 errors,100% packet loss,time 37008ms
pipe 3

real    0m37.010s
user    0m0.001s
sys     0m0.000s
1

这似乎与man ping冲突:

1)面对ICMP错误的ping行为是否与手册页一致?在错误条件下,返回代码似乎应为2.

2)是否可以阻止我自己的机器进入这些目标主机无法访问的消息?

如果我重新运行ping几次,它最终会看到主机并干净地退出(返回代码0).

解决方法

我建议你从ping中渗透超时并使用timeout命令(coreutils的一部分):
timeout 300s bash -c "until ping -c10 hostother; do false; done"

如果命令超时,你将得到124作为返回码;例如如果它在5分钟内连续10次ping不成功,并且如果ping成功则为0,一旦它发生.

我知道这并没有真正回答这个问题(我承认ping手册页不是很清楚),但希望能解决你的问题.

大佬总结

以上是大佬教程为你收集整理的由于ICMP主机无法访问,Linux ping命令会提前退出全部内容,希望文章能够帮你解决由于ICMP主机无法访问,Linux ping命令会提前退出所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。