我在c寫自己的shell,問題是在執行後臺進程。 現在。只要我們執行與「&」,那麼該過程進行背景 結束一個進程並開始執行BASH,後臺進程的輸出來對終端時後臺進程需要輸入則暫停,直到我們給「FG」命令。執行unix終端後臺進程。
那麼如何實現後臺進程呢?
對於任何命令的正常執行(不以&結尾),我調用fork系統調用,然後在子進程中執行命令,父進程將等待子進程的執行(通過wait())。
而對於'&'命令我做了同樣的事情,但父母不會等待子進程的執行。這裏我的問題是,只要後臺進程需要輸入,就可以控制終端。所以如何在需要輸入時暫停子進程。
您拍照時一看在bash源代碼? http://ftp.gnu.org/gnu/bash/ –