总控节点防瘫痪

本文介绍了两种实现Linux服务高可用性的方法:一是通过主备模式,客户端在检测到主服务失败后切换到备用服务;二是利用fork+waitpid机制,父进程监控子进程状态并在子进程终止时重启之。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初学linux开发,总结下。若有错误,敬请指正,谢谢。

1.主备模式

配置两个服务进程,一个主,另一个备,主和备都打开服务。客户端把主和备的地址都配上,如果发现往主服务进程发送请求,connect不到,推测主服务进程可能瘫痪,就往备用服务进程发送请求。对于这种方式,笔者尚未实践过。只停留在理论阶段。

缺点需要手动修复主服务进程。

2. fork + waitpid

while (1) {
        pid_t pid;
        if((pid = fork()) < 0) {
            perror("fork:");
        } else if (pid == 0) {
            printf("reboot SysCtrlNode\n");
            execl("./SysCtrlNode", "./SysCtrlNode", "NULL");
            perror("execlv:");
            exit(1);
        } else if (pid > 0) {
            waitpid(pid, NULL, 0);
        }
    }
笔者自己写了个小项目就使用到了此种方式。监控进程作为父进程,一旦wait到子进程结束,立即fork出子进程,execl服务进程。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值