例如,system("sh /mydir/some-script.sh &")
請問POSIX系統(3)立即調用異步shell命令返回嗎?
0
A
回答
1
system("sh /mydir/some-script.sh &")
執行
/bin/sh -c 'sh /mydir/some-script.sh &'
system
會盡快回來作爲外殼的回報,這將是立即將其啓動內殼之後。這兩個shell都不會等待some-script.sh
完成。
$ cat some-script.sh
sleep 1
echo foo
$ /bin/sh -c 'sh some-script.sh &' ; echo bar ; sleep 2
bar
foo
2
是,shell將叉腳本並立即返回,但你不必知道腳本如何以及是否結束的一個簡單的方法。
「正確」的方式來運行這樣的異步命令將fork(2)
你的過程中,隨着二進制集合/bin/sh
和設置您的腳本的名稱一個參數調用execve(2)
的孩子,輪詢孩子定期從父母使用waitpid(2)
系統調用WNOHANG
選項。當waitpid
返回-1時,您知道腳本已結束,您可以獲取其返回碼。
實際上,system(3)
所做的幾乎與唯一的例外情況相同,即對waitpid
的調用會阻止,直到進程終止。
相關問題
- 1. ASP.NET,異步調用到另一頁,返回響應立即
- 2. 從WCF服務調用方法異步並立即返回
- 3. 可以在POSIX shell中使用命令替換命令嗎?
- 4. C#在讀取異步時等待shell命令返回
- 5. APDU命令異步調用
- 6. Ruby從系統命令返回(sox)
- 7. 系統命令 - 沒有得到返回
- 8. php shell命令返回JSON
- 9. 使用GPars發送一個異步任務,並立即返回
- 10. 異步回調返回null
- 11. 在Shell中異步執行命令
- 12. 從shell命令調用SOAP請求
- 13. 執行shell命令編程android系統
- 14. 沒有系統PHP異步調用
- 15. ASP.NET異步請求回調
- 16. 一系列http異步請求調用
- 17. elisp的接近*異步Shell命令*命令後窗口完成
- 18. Spring MVC的DeferredResult異步請求不行,異步請求立即響應
- 19. DotNetOpenAuth - 立即請求訪問令牌
- 20. 如何以異步方式在Perl中運行系統命令?
- 21. Powershell調用命令和系統變量
- 22. Strace命令只顯示系統調用
- 23. SELECT後,ExecuteScalar會立即返回嗎?
- 24. Check_output立即返回
- 25. DispatcherOperation.Task立即返回
- 26. OSX是POSIX操作系統嗎?
- 27. NodeJS:異步/回調問題
- 28. 將即時返回函數調用編譯爲「nop」指令嗎?
- 29. 用回調執行異步函數嗎?
- 30. 異步和同步I/O操作系統是否獨立?
爲什麼不試試看?這可能比提問並等待人們迴應更快。 – jamessan 2011-04-14 17:18:16