【问题标题】:How do I fork a new process and get back its PID in Perl?如何在 Perl 中分叉一个新进程并取回它的 PID?
【发布时间】:2010-11-29 03:00:46
【问题描述】:

我的问题与在 Perl 代码中使用 fork() 有关。 我希望派生一个新进程并捕获其 PID 并将其返回给被调用程序。 Perl 中是否有一些命令可以实现这一点?

【问题讨论】:

  • -1 - 你与 fork 命令有关,但你显然没有看它的 perldoc。
  • 尝试阅读 fork 的文档。 :)

标签: perl unix fork


【解决方案1】:

是的,fork

引用该页面:

它将子 pid 返回给父 进程0 到子进程,或者 undef 如果分叉不成功。

【讨论】:

    【解决方案2】:
    my $pid = fork();
    if ($pid == 0)
    {
        # We are the child.
    }
    elsif defined($pid)
    {
        # We are the parent of child with PID=pid
    }
    else
    {
        # The fork failed
    }
    

    【讨论】:

    • '我们是自豪的父母......' 除非孩子是死产......还有第三条路径 - 如果 $pid 是 undef。
    【解决方案3】:

    fork 向父级返回子 pid,向子级返回 0。

    【讨论】:

      【解决方案4】:

      好吧,Perl 的fork 函数将子元素的PID 返回给父元素,将0 传给子元素,这不正是您想要的吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-05
        • 2015-01-05
        • 2015-10-10
        • 2012-04-19
        • 2015-02-03
        相关资源
        最近更新 更多