2012-10-09 5 views
0

fork 된 프로세스는 상위 프로세스에서 (서버) 포트를 상속합니까?
나는 자식 프로세스를 포크하는 java 프로세스를 가지고 있으며, netstat -anpt |grep에서 부모와 자식 모두 동일한 포트에 바인딩되어있는 것을 볼 수있다.
이것이 가능합니까? 이것을 얻을 수있는 방법이 있습니까?자식 프로세스가 상속 한 것은 무엇입니까?

답변

0

fork 된 프로세스는 상위 프로세스의 모든 (서버) 포트 바인드를 상속합니까?

해당 상위 리소스를 상속합니다. 이것은 OS가 작동하는 방식입니다.

이 문제를 해결할 방법이 있습니까?

자녀는 필요없는 모든 리소스를 닫아야합니다. 이것은 C 언어에서는 상대적으로 쉽지만 Java에서는 단순하지 않습니다. 깨끗한 리소스 세트로 Java 프로세스를 시작하는 방법이있을 수 있지만이를 수행하는 방법을 알지 못합니다.

+0

문제는 부모 프로세스'-Xdebug -Xnoagent -Xrunjdwp : transport = dt_socket, server = y, suspend = n, address = 8989'에서 원격 디버깅 포트를 활성화하고'netstat'을 실행할 때 발생하는 문제입니다. 자식 프로세스와 부모 프로세스가 모두이 포트에 "바인딩"되어 있는지 확인하십시오. 그래서 디버그 할 수 없습니다. 내가이 작업을 시도 할 수있는 아이디어가 있습니까? – Jim

+0

이것이 디버깅을 방지하는 이유는 무엇입니까? 하나의 프로세스 만 해당 포트의 연결을 허용합니다. –

+0

forked 프로세스가'C++ '이므로 서버를 배치하고 포트를 사용하여 종료를 시도합니다. 따라서'jpda'는 거기에 바인딩 할 수 없습니다.이게 합리적인 가정입니까? 이것은 내가 이해하는 것입니다. – Jim