我使用fork创建进程后,运行到os.dup2(stdout_fd, 1)这一句时子进程消失
我尝试注释掉这一句,结果是运行os.execve时子进程消失
请问是什么原因?
```pid = os.fork()
if pid == 0:
try:
if stdin_fd is None:
stdin_fd = os.open(stdin_file, os.O_RDONLY, stat.S_IRUSR | stat.S_IRGRP)
if stdout_fd is None:
stdout_fd = os.open(stdout_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IRUSR | stat.S_IWUSR)
if stderr_fd is None:
stderr_fd = os.open(stderr_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IRUSR | stat.S_IWUSR)
os.dup2(stdin_fd, 0)
os.dup2(stdout_fd, 1)
os.dup2(stderr_fd, 2)
os.execve(NSJAIL_PATH, nsjail_args, dict())
except:
with open(error_path, "w") as p:
traceback.print_exc(file=p)
sys.exit(0)
else: