孩子做了一个exec后的父进程

时间:2012-10-06 12:24:01

标签: linux

我有一个场景,在fork之后,孩子使用excele()命令执行

一个linux系统命令,它执行一个小的shell脚本。

之后父母只做一个wait()。所以我的问题是,父母是否执行

在子进程执行的execle()之后等待吗?

由于 史密塔

2 个答案:

答案 0 :(得分:0)

我不太确定你在问什么,但是父母正在进行wait()系统调用,它将在那里等待,直到任何一个孩子退出。还有一些其他的东西,比如信号,它也会把它带出出口。

您必须在子进程中小心,在出错时不会意外地陷入父代码。

答案 1 :(得分:0)

这是(子进程在其父execve - ed之后​​执行一些fork,并且父wait - 或waitpid - 这是一个非常常见的情况;大多数炮弹都是这样工作的。你可以,例如strace -f一个交互式bash shell,用于了解详情,或研究简单shell的源代码,例如sash

请注意,在fork(2)系统调用之后,父进程和子进程可以同时运行(例如,同时运行,尤其是在多核计算机上)。