gpt4 book ai didi

C++ Linux 服务 - 如何使用 init.d + 自动重启?

转载 作者:太空狗 更新时间:2023-10-29 23:36:53 26 4
gpt4 key购买 nike

我创建了一个 linux c++ 服务(它基本上是一个应用程序,但它非常频繁地处理 TCP/IP 上的请求)。

我想知道是否有任何简单的方法可以让它在出现问题(如崩溃)或服务器重启时“自动重启”?

我不确定如何或是否应该将其设置为服务或设置 rc.d 脚本,我不是 100% 熟悉如何在 linux 上执行此操作(我的服务器正在运行 ubuntu如果重要的话)。

如有任何建议,我们将不胜感激!

~乔什

最佳答案

这里的很多答案都建议有一个“父应用程序”来执行此操作,但是您最终会遇到与父应用程序相同的问题 - 它一直是海龟。

在许多 unix 类型的系统中(尤其是历史上),init 进程是第一个执行的进程,并将执行(并自动重启)定义在/etc/inittab 中的进程。

因此,与其编写自己的看门狗或进程来自动重启 - 您可以使用这个自动为您完成工作的程序,因为它是 init 进程,如果它死了,系统有更多需要担心的事情比你的服务。

@doron 建议另一种好方法,如果您的服务应该为每个传入连接生成一个新进程,并且只在有传入连接时才工作。

最后,最近 init 进程(和/etc/inittab)在 Ubuntu 类型的系统上被 upstart - http://upstart.ubuntu.com/ 取代了。 - 针对同一事物的更灵活的系统。

关于C++ Linux 服务 - 如何使用 init.d + 自动重启?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com