如何在引擎盖下实施?

Je *_*Rog 3 c bash background-process

&    # disown the functions
Run Code Online (Sandbox Code Playgroud)

我们都知道&把任务放到后台,最重要的是让任务失败.

但它是如何实现的?

Bla*_*iev 5

没有a &,shell会自行调用execve,在子进程中调用以启动任务,并等待通过waitwaitpid让子进程终止(挂起shell),而不是做其他事情.

当启动后台任务时,shell再次自行调用,调用execve在子进程中启动任务,但不等待其终止,而是在任务开始后立即返回控件.