stderr在G-WAN上的位置在哪裏?
如果我記得很清楚,stdin
,strerr
和stdout
,因爲他們是無論如何無法訪問作爲G-WAN了從其父終端獨棟關閉在守護進程模式。
但是在'交互式'模式下,G-WAN仍顯示控制檯輸出,如編譯錯誤和'gracefull'崩潰報告(servlet崩潰不會導致服務器崩潰),這些文件描述符仍處於打開狀態。
這可以從任何G-WAN使用被加載的模塊(C
,C++
,C#
,Java
,PH7
,Objective-C
等)的腳本,即,當腳本共享G-WAN存儲器空間容易地檢查。
但是,當一個CGI處理來代替,因爲腳本運行時未加載作爲模塊(Ruby
,Perl
等)G-WAN是運行一個外部進程和管道stdout
這是不同的。
在後面這種情況下,G-WAN需要另一個管道來傳輸stderr
。這沒有完成,這就是爲什麼你從Ruby
腳本指令輸出到stderr
什麼都看不到。
使用更多的管道會消耗更多的文件描述符,並且在服務器負載下速度更快,因此,除非您對此功能具有引人注目的用途,值得與我們共享,否則實現它可能沒有多大意義。
更爲理想的是,所有腳本語言都應該使用在G-WAN內存空間中加載的模塊,因爲這樣可以實現更高的性能和併發性。
因此,在G-WAN使用stderr
之前,這只是一個時間問題(以及來自Ruby社區的幫助),而不需要額外費用Ruby
。
來源
2014-05-12 08:24:58
Gil