Pra*_*van 2 c++ fork zombie-process dup2
我有这样的代码......
c = fork();
if(c==0) {
close(fd[READ]);
if (dup2(fd[WRITE],STDOUT_FILENO) != -1)
execlp("ssh", "ssh", host, "ls" , NULL);
_exit(1);
}
close(fd[WRITE]);
Run Code Online (Sandbox Code Playgroud)
fd [READ]和fd [WRITE]是管道文件描述符.
当我连续运行时,当我使用ps ax时,会有很多僵尸进程.如何纠正这个?这是因为我没有使用父进程来等待子进程的退出状态...
如果您无意wait为您的子进程设置,请将SIGCHLD处理程序设置SIG_IGN为让内核自动收获您的子进程,例如.
signal(SIGCHLD, SIG_IGN);
Run Code Online (Sandbox Code Playgroud)