我们的应用程序有一个 systemd 服务 A。并且我们在同一台机器上有一个单独的程序来监控服务 A 的状态。如果 A 停止,这个监控程序可以帮助将用户请求重定向到另一台机器。
但是,当服务 A 因软件错误而核心转储时,转储内存状态可能需要很长时间。在此期间,服务 A 仍被视为活动状态,并且无法进行请求重定向。这会影响我们应用程序的响应能力。
有没有办法配置服务在核心转储完成之前停止?我们不想禁用核心转储以进行调试。
答案1
我认为,最好的解决办法是改进监控程序。
如果您仅在 pid 列表中检查进程名称,那么这是不够的。
而是将监视程序改为像应用程序 A 的客户端一样运行,并在应用程序 A 中执行一个非常快速和简单的操作以确保它可以运行,如果不能,则立即将用户重定向到另一个应用程序 A 实例。