c++ - 我如何让一个进程在 linux 中重新加载自己?

标签 c++ linux process reload restart

我有一个服务,比如 foo,是用 C++ 编写的,它以 root 身份运行。有通常的脚本,/etc/init.d/foo start|stop|restart。

在某些时候,foo 需要重新加载自己。通常在升级完成后。但是做这样的事情:

system("/etc/init.d/foo restart")

不起作用,因为一旦重新启动杀死 foo,system() 调用显然也被杀死,并且重新启动脚本永远不会执行完成。

我可以使用另一个调用来代替 system() 作为调用进程的同级异步运行,而不是创建一个同步子进程吗?

谢谢!

最佳答案

您是否考虑过 exec[*] 系列?这是一个 -- execve .

关于c++ - 我如何让一个进程在 linux 中重新加载自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627319/

相关文章:

c - 如何查找进程是否在 C 中运行?

c++ - 我可以在 MSVC++ 中使用 128 位整数吗?

c++ - 无法访问我的 UI 的小部件

linux - 根据文件中的不同列排序和删除重复项

Python 进程完成

c - PROCESS SYSTEM CALL中PID的变量类型是什么?

c++ - 简单 C++ 代码上的运行时错误信号 11

c++ - 如何使用快速傅立叶变换计算数组元素的乘积之和?

mysql - 无法远程连接到MySQL服务器

linux - 丢弃包含字符串 linux 内核模块的数据包