【问题标题】:What is inherited by a child process?子进程继承了什么?
【发布时间】:2012-09-29 18:28:36
【问题描述】:

派生进程是否从父进程继承任何(服务器)端口绑定?
我有一个 java 进程,它派生出一个子进程,从 netstat -anpt |grep 我看到父进程和子进程都绑定到同一个端口。
这可能吗?有没有办法解决这个问题?

【问题讨论】:

    标签: java linux process jpda


    【解决方案1】:

    派生的进程是否继承父进程绑定的任何(服务器)端口?

    它继承了其父级的资源。这就是操作系统的行为方式。

    有没有办法解决这个问题?

    孩子必须关闭所有它不需要的资源。这在 C 中相对容易做到,但在 Java 中并不简单。可能有一种方法可以使用干净的资源集启动 Java 进程,但我不知道有什么方法可以做到这一点。

    【讨论】:

    • 我遇到的问题是我在父进程-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8989 中启用了远程调试端口,当我执行netstat 时,我看到子进程和父进程都“绑定”到了这个端口。所以我无法调试。您对我可以尝试解决这个问题有什么想法吗?
    • 为什么这会阻止调试?只有一个进程会接受该端口的连接。
    • 因为分叉的进程是C++ 并且它似乎试图部署服务器并最终使用该端口。所以jpda 不能在那里绑定。这听起来合理的假设吗?这是什么我知道正在发生这种情况
    • 查看stackoverflow.com/questions/6945865/…中的FD_CLOEXEC东西
    • @Jim 这完全取决于您如何分叉子进程。我希望您从执行 fork 的 Java 代码中添加进程生成调用,然后我们可能会回答这个问题。
    猜你喜欢
    • 2021-12-31
    • 2020-12-05
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2012-03-07
    • 1970-01-01
    • 2010-12-17
    相关资源
    最近更新 更多