我需要创建派生为子进程的进程,这些子进程将使用 execv() 执行命令。父进程将立即结束,让子进程运行新图像。我已经存储了子进程 ID,当调用命令时,我将检查该进程是否正在运行。这是代码。
for(size_t i = 0; i < currProcess; i++) {
if (kill(processArr.pid, 0) != 0 && errno == ESRCH) {
processArr[i].run = false;
} else {
processArr[i].run = true;
}
}
但是,这些进程似乎并没有结束并且永远在运行。execv() 图像在完成后不会结束进程吗?代码有问题吗?