我在c写自己的shell,问题是在执行后台进程。 现在。只要我们执行与“&”,那么该过程进行背景 结束一个进程并开始执行BASH,后台进程的输出来对终端时后台进程需要输入则暂停,直到我们给“FG”命令。执行unix终端后台进程。
那么如何实现后台进程呢?
对于任何命令的正常执行(不以&结尾),我调用fork系统调用,然后在子进程中执行命令,父进程将等待子进程的执行(通过wait())。
而对于'&'命令我做了同样的事情,但父母不会等待子进程的执行。这里我的问题是,只要后台进程需要输入,就可以控制终端。所以如何在需要输入时暂停子进程。
您拍照时一看在bash源代码? http://ftp.gnu.org/gnu/bash/ –