我有一个服务器,它监听套接字连接并根据请求执行不同类型的操作。其中之一是长期存在的数据库查询,服务器为此分叉。
服务器保留所有活动子节点的日志,并且每当被要求关闭时,它会在退出之前杀死所有子节点。有几次我遇到服务器崩溃或被不优雅地杀死的情况,这导致子进程成为孤儿。如果我再次尝试恢复服务器,它将拒绝说监听套接字无法绑定,因为该地址/端口已经绑定。
我正在寻找一种方法来改善这种情况,以便主服务器进程可以立即恢复。我已经尝试从孩子那里监视父母的存在并在消失后立即退出,但这只会导致僵尸进程并且套接字似乎仍然被绑定。
该服务器是用 Python 编写的,但欢迎任何语言的任何解释或建议。