3
A
回答
5
如果沒有&
,外殼叉本身,在子進程調用execve
啓動任務,並通過wait
或waitpid
等待孩子終止(中止其外殼),沒有做任何事情比別的。
當啓動後臺任務時,shell再次自動分叉,調用execve
在子進程中啓動任務,但不等待其終止,而是在任務開始後立即返回控件。
+0
Bash並不總是fork:有時候execve會被直接調用,有時候命令甚至在內部執行取決於你執行的是什麼以及如何執行。奇怪的是,您指定了bash使用的execact函數,而您在其他所有方面都不太準確。我認爲如果你升級了你的文章並且至少添加了一些關於作業控制和子進程的標準輸入/輸出的東西,那將是一件好事,但這都是imho。 – XzKto
+0
我正在談論一個shell啓動外部程序的一般方式。當然,爲了執行內置命令,shell不必fork和exec,因爲代碼是在同一個可執行文件中的。 –
相關問題
- 1. 在bash shell中如何實現管道?
- 2. 如何在bash腳本中實現grep?
- 3. 在bash中實現netcat
- 4. 如何實現字數bash shell
- 5. 如何實現對下滾
- 6. 如何實現以下
- 7. 在實現代碼如下
- 8. 如何實現在HTML以下設計
- 9. 如何在iphone中實現下拉框?
- 10. 如何在Linux下實現管道?
- 11. 如何實現在OpenCV中實現以下目標?
- 12. 如何使用C在bash中實現邏輯運算符?
- 13. 在bash shell中如何實現命令建議?
- 14. 如何在bash中實現定時器按鍵?
- 15. 如何在Heroku bash或Heroku Scheduler中實現Heroku部署
- 16. 如何在bash或python中使用循環實現此代碼
- 17. 如何用mongoid實現如下查詢
- 18. 如何在Delphi中實現XIRR實現?
- 19. 如何在沒有實現的情況下在android中實現微調器?
- 20. 如何在嚴格模式下實現以下JavaScript關閉?
- 21. 如何在以下條件下實現logrotate?
- 22. 如何實現以下動畫?
- 23. 如何實現以下算法?
- 24. 如何實現「下降的針」
- 25. 如何實現以下使用rxjs Observables?
- 26. 如何實現以下查詢
- 27. 如何實現嵌套NSSplitView像下面?
- 28. 如何實現以下邏輯與PHP
- 29. Android:我如何實現以下佈局?
- 30. 如何實現下面的東西?
它不會忽略每個系統上的進程。在FreeBSD上是這樣的,在Linux上不行。請參閱'disown'功能。 – wormsparty
不是。但是看看是否存在「disown」函數。 – wormsparty