我想在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::Process
和Win::Job
无济于事:它仍然只会杀死父母并启动孩子,整棵树在完成时会死亡。
反对这一点。有没有人有一个确定的方法来在XP中创建一个独立的子进程 (而不是fork
)。
答案 0 :(得分:2)
Start是cmd.exe中内置的,请尝试system('cmd.exe /c "start perl child.pl arg1"')
。