代码之家  ›  专栏  ›  技术社区  ›  Danny

如何确定脚本是在Perl中的系统调用还是qx调用中执行?

  •  3
  • Danny  · 技术社区  · 17 年前

    system qx )?

    $ cat foo.pl
    print "foo";
    print "\n" if not $in_qx;  # or the like.
    

    我意识到如果脚本是通过 exec

    我确信这一点 系统 fork 我知道 可以返回一个可变值,该值取决于您是在父进程中还是在子进程中。不确定 qx .

    不管怎样,我不确定如何判断我是否处于 在没有实际执行 .

    3 回复  |  直到 17 年前
        1
  •  6
  •   Chas. Owens    17 年前

    所有进程都是从另一个进程派生的(init除外)。您可以大致判断程序是否从运行 open qx// , open2 open3 isatty 作用于 POSIX ,但没有很好的方法来确定您是否被 system system "nohup", "./foo.pl"

        2
  •  5
  •   wazoox    17 年前

    您可以使用“getppid”(获取家长id)检查“谁是您的爸爸”。然后检查您的父id是否是带有pgrep或类似内容的perl脚本。

        3
  •  2
  •   Michael Carman    17 年前

    --isforked .