我制作了一个复杂的C程序,在执行过程中,以这种方式分叉许多其他进程:
#include <unistd.h>
int main(int argc, char *argv[])
{
pid_t childpid = fork();
if(childpid == -1) {
perror("Failed to fork");
}
if(childpid == 0) {
setsid();
int execReturn = execl("/bin/my_code", (char *) 0);
} else {}
return 0;
}
关键是当我从shell启动TOP命令时,我可以看到许多名为“my_code”的进程,它们看起来都像这样:
2377 root 20 0 0 0 0 Z 0,0 0,0 0:00.14 my_code
2379 root 20 0 0 0 0 Z 0,0 0,0 0:00.02 my_code
2380 root 20 0 0 0 0 Z 0,0 0,0 0:00.02 my_code
我担心这可能会有危险,因为我的代码设计为不间断地连续运行。
互联网对我帮助不大。
注意:我的操作系统是Raspbian。
编辑:
我要问的是,除了代码之外,我在TOP输出中看到的那些进程可能对CPU造成危险。
正如我所说,我的代码设计为连续运行,因此我不知道问题是否会在一周左右出现。
编辑:
我编辑了我的代码,使其独立于使用system(...)调用的子进程。
非常感谢@alk。