如何从 Ruby 本地 ping 另一个应用 运行

How to ping another app running locally from Ruby

我想检查 Flask 应用程序是否是 运行 本地的 Rails 应用程序也是 运行 本地的。

Flask 应用启动于,

gunicorn --bind 0.0.0.0:5000 wsgi:application -w 1

因此,

Listening at: http://0.0.0.0:5000

我如何通过 ping 命令查看它是否存在 运行?

我在下面使用 net/ping gem.

尝试过但没有成功
check = Net::Ping::External.new('http://0.0.0.0:5000')
check.ping?

您要做的是改用 Net::Ping::HTTPExternal class 用于 ICMP 主机 ping(仅检查主机是否启动,而不是该主机上的服务)。

检查 HTTP 服务器是否正在使用 HTTP 协议:

check = Net::Ping::HTTP.new('http://localhost:5000')
check.ping?

如果您想将超时调整为 2 秒(默认为 5 秒):

check = Net::Ping::HTTP.new('http://localhost:5000', nil, 2)
check.ping?