& # disown the functions
众所周知,&
将任务置于后台,最重要的是否认该任务。
但是它是如何实现的呢?
最佳答案
如果没有 &
,shell 会 fork 自己,在子进程中调用 execve
来启动任务,然后通过 wait
或 waitpid
让子进程终止(挂起 shell),除此之外什么都不做。
当启动后台任务时,shell 再次 fork 自身,调用 execve
以在子进程中启动任务,但不等待其终止,而是在启动后立即返回控制权的任务。
关于c - & 是如何在 bash 中实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7230592/