gpt4 book ai didi

c++ - 重新启动 linux 守护进程

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:10 28 4
gpt4 key购买 nike

我有一个用 C++ 编写的 Linux 守护程序,当用户通过其控制台在网络上发出“重启”命令时,它应该会自行重启。这可能吗?我使用 /etc/init.d 脚本。我怎样才能让它自己重新启动?我是否应该以很长的延迟(一分钟)启动一个新进程,然后再次触发 shell 脚本?问题是守护进程可能需要很长时间才能关闭,在最坏的情况下甚至可能需要一分钟以上。

最佳答案

应用程序基本上可以通过三种方式自行重启:

  1. 当应用程序被告知重新启动时,它会进行适当的清理,释放它分配的所有资源,然后像从头开始一样重新初始化。

  2. fork一个新进程,新的子进程执行自身,父进程正常退出。

  3. 守护进程实际上只是一个包装应用程序,很像一个初始化脚本。它 fork 一个运行实际应用程序的新进程,而父进程只是等待它退出。如果子进程(和真正的应用程序)返回一个特殊的退出代码,这意味着它应该重新启动,以便 forks/execs 重新开始。

注意第2点和第3点基本相同

关于c++ - 重新启动 linux 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271076/

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