What happens to parent process, when a child process is created using vfork() and killed before calling exec

Patrick O'Callaghan pocallaghan at gmail.com
Tue Oct 28 21:56:17 UTC 2014


On Tue, 2014-10-28 at 11:01 +0000, Kevin Peterson wrote:
> Hi, 
> 
> When a process is created using vfork() child process is created and starts running in the parent process address space, until exit() or exec() is called. 

Wrong. The child runs in its own address space.

> What happens to the parent process, if some one kills the child process before calling the exit()/exec()?

"Killing" a process means sending it a signal. If there is no signal
handler (or the signal cannot be caught) the kernel phase of the process
wraps up and informs the parent via a SIGCHLD signal. If the parent is
dead, it informs process 1 (traditionally init, now systemd).

See signal(2) and _exit(2).

poc



More information about the users mailing list