前台进程和后台进程的主要区别是什么?

前台进程和后台进程的主要区别是什么?

如果我们在 shell 中输入命令,它基本上会通过调用 fork 创建一个子命令,然后子执行程序是我们输入的命令,因此它的父命令是 shell。如果它是前台进程,则父进程(在本例中为 shell)必须等待子进程终止,如果我们输入 & 它会在后台执行。那么到底是什么让父进程等待或不等待子进程终止呢?

答案1

作为埃里克·雷诺夫 评论了,如果你想在自己的代码中等待子进程,你应该使用wait函数(通常作为系统调用和 C 库函数实现,因此您可以在第 2 节和第 3 节中找到联机帮助页)。链接页面有一个示例实现。

如果你想在 shell 代码中做同样的事情,你可以使用wait等待后台作业完成的命令。

相关内容