fork 和 sigchld 坑

简介: <p>最近有个项目,一个deamon进程,一个干活进程。deamon 进程会捕获SIGCHLD信号如果干活进程down掉了,deamon会收到这个信号并且重新fork干活进程。</p> <p>最近发现一个问题是 deamon进程fork了好几个干活进程。团队的人调查问题,一度怀疑是不同的linux内涵对信号处理不同。后来我发现如果干活进程调用了system函数,system会fork一个

最近有个项目,一个deamon进程,一个干活进程。deamon 进程会捕获SIGCHLD信号如果干活进程down掉了,deamon会收到这个信号并且重新fork干活进程。

最近发现一个问题是 deamon进程fork了好几个干活进程。团队的人调查问题,一度怀疑是不同的linux内涵对信号处理不同。后来我发现如果干活进程调用了system函数,system会fork一个子进程,这个子进程昨晚事情就退出了,导致deamon进程收到一次SIGCHLD信号。


目录
相关文章
|
6月前
|
C语言
C语言 父进程fork()出的多个子进程在结束后,父进程如何回收?
我在网上找了半天都是在说wait()和waitpid()的详解或者是单个子进程的回收。答非所问。 很简单,根据wait()或者waitpid()的函数特性。没有子进程时返回-1。
56 0
|
5月前
|
算法 Unix Linux
Linux系统编程(vfork和fork)
Linux系统编程(vfork和fork)
35 0
|
8月前
|
数据可视化 项目管理 开发工具
|
10月前
|
并行计算 算法 Java
Fork/Join解读
Fork/Join解读
|
算法 物联网 Linux
创建进程 fork 函数|学习笔记
快速学习创建进程 fork 函数
147 0
创建进程 fork 函数|学习笔记
|
Ubuntu Linux 开发工具
Linux使用fork()方法创建进程
Linux使用fork()方法创建进程
123 0
Linux使用fork()方法创建进程
|
Linux
Linux系统编程-进程创建(fork)、外部程序调用(exec)
在linux中fork函数是非常重要的函数,它可以从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。
485 0
|
Linux
关于signal和fork的思考
fork可以在linux中创建子进程。先看man手册里面的东西: SYNOPSIS       #include        pid_t fork(void);DESCRIPTION       fork()  creates  a new process by duplicating the calling process.
1184 0
|
Linux 调度
Linux进程的创建函数fork()及其fork内核实现解析【转】
转自:http://www.cnblogs.com/zengyiwen/p/5755193.html 进程的创建之fork() Linux系统下,进程可以调用fork函数来创建新的进程。调用进程为父进程,被创建的进程为子进程。
1354 0