【发布时间】:2017-04-06 08:45:04
【问题描述】:
我有一个 python 脚本,它只有在我的服务器可用时才有效。所以在脚本开始之前,我想 ping 我的服务器或者检查服务器的可用性。
已经有一些相关的 SO 问题。 例如
-
response = pyping.ping('Your IP') if response.ret_code == 0: print("reachable") else: print("unreachable") -
response = os.system("ping -c 1 " + hostname)
这些答案效果很好,但只能作为 ROOT 用户! 当我作为普通用户使用此解决方案时,我收到以下错误消息:
ping: Lacking privilege for raw socket.
我需要一个解决方案,我可以作为普通用户执行此操作,因为我在 jenkins 作业中运行此脚本并且没有以 root 身份运行的选项。
【问题讨论】:
-
必须是 ping 吗?那么 HTTP GET 或简单的 UDP 数据包呢?
-
嗯,我没想到。我想到的第一件事是ping,因此我正在尝试用ping解决它。它简短而简单。但如果有任何其他解决方案,您可以将其写为下面的答案。
-
您为什么要检查可用性?在尝试使用在已知端口上运行的某些服务之前,您是否尝试进行快速检查?如果是,我宁愿尝试连接到该服务,而不是先尝试 ping 它,然后再连接到“真实”服务。
-
@SanjayT.Sharma 不,我检查可用性,因为我想知道服务器是启动还是关闭。我没有使用它的任何服务。
标签: python python-2.7 jenkins server ping