2012-10-09 86 views
0

分叉進程是否繼承父進程綁定的任何(服務器)端口?
我有一個java進程,它分叉子進程,並從netstat -anpt |grep我看到,父母和孩子都綁定到同一個端口。
這可能嗎?有沒有辦法繞過這個?子進程繼承什麼?

回答

0

分叉進程是否繼承父進程綁定的任何(服務器)端口?

它繼承了其父代的資源。這是操作系統的行爲方式。

有沒有辦法解決這個問題?

孩子必須關閉所有不需要的資源。這在C中相對容易,但在Java中並不簡單。可能有一種方法可以使用一組乾淨的資源來啓動Java進程,但我不知道如何執行此操作。

+0

我的問題是,我啓用遠程調試端口在父進程'-Xdebug -Xnoagent -Xrunjdwp:transport = dt_socket,server = y,suspend = n,address = 8989',當我做'netstat' I看到子進程和父進程都「綁定」到這個端口。所以我不能進行調試。對於我可以嘗試圍繞這個工作的任何想法,你有什麼想法嗎? – Jim

+0

這爲什麼會阻止調試?只有一個進程將接受該端口的連接。 –

+0

由於分叉進程是'C++',它似乎試圖部署服務器並使用該端口結束。所以'jpda'不能綁定在那裏。這聽起來合理的假設嗎?這就是我所瞭解的情況 – Jim