使用Perl在XP中生成子进程

时间:2014-03-11 19:53:16

标签: perl process windows-xp

我想在XP中生成一个子进程;例如:

system "start", "cmd.exe", "perl", "child.pl", "arg1";

当我运行它时,它告诉我" start并不存在。" (开始在Win 7中运行)。

当我跑步时:

system "cmd.exe", "perl", "child.pl", "arg1";

子进程发生在与父进程相同的控制台中,并且在完成时控制台会话结束 - 因此,我相信子进程只是接管并且父进程终止。

通常,当我在Win 7中运行这些命令时,会出现一个新的控制台,一切正常。

当我输入:

"start"

进入XP控制台,出现一个新的控制台 - 为什么它可以找到它,但不是当我从Perl脚本中调用它时?

我已经尝试Win::ProcessWin::Job无济于事:它仍然只会杀死父母并启动孩子,整棵树在完成时会死亡。

反对这一点。有没有人有一个确定的方法来在XP中创建一个独立的子进程 (而不是fork)。

1 个答案:

答案 0 :(得分:2)

Start是cmd.exe中内置的,请尝试system('cmd.exe /c "start perl child.pl arg1"')