标签: c bash background-process
& # disown the functions
我们都知道&将任务放入后台,最重要的是让任务失败。
&
但它是如何实现的?
答案 0 :(得分:5)
如果没有&,shell会自行调用,在子进程中调用execve来启动任务,并通过wait或waitpid等待子进程终止(暂停shell),没有做任何其他事情。
execve
wait
waitpid
当启动后台任务时,shell再次自行分配,调用execve以启动子进程中的任务,但不等待其终止,而是在任务开始后立即返回控件