c - 从生成过程中排除 child

标签 c unix exec fork spawn

我有一个使用 fork/exec 生成子项的 C 应用程序。我的 spawn-process 不停地运行,它使用 unix 管道创建一个日志文件。我想每 24 小时备份一次日志。为此,我正在使用脚本。脚本完成后,我想终止并重新启动该进程。到目前为止,一切都很好。但可能存在仍然活跃的已生成子项的情况。是否可以在终止并重新启动生成过程之前与它们断绝关系?

通常,当 parent 被杀死时,所有的 child 也立即被杀死。

最佳答案

一个进程不会在其父进程死亡时死亡。很可能,您的子进程出于某种原因正在接收一些信号(SIGHUP?)。

如果你想让你的 child 坚持下去,你需要找出那个信号是什么,并在 fork 之后立即忽略它。

关于c - 从生成过程中排除 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893091/

相关文章:

python - NameError:名称 'self' 未在 EXEC/EVAL 中定义

常量元素与常量数组

java - 在android中仅从年份获取unix时间戳值

linux - $'\n' 在 bash 中是什么意思?

php - 如何从 Windows 中的 PHP 函数 exec() 获取 PID?

c - 为什么fork后关闭文件描述符会影响子进程?

c - Fgets 和 sscanf 不等待输入 C

c - 请求非结构或 union 中的成员 `result'

c - 指针算术和有符号/无符号转换!

c - pthread_create 之后 pthread_t 会发生什么?