如何在Perl中启动后台进程?

问题描述:

我想弄清楚如何在perl脚本(在Windows上)启动后台进程。换句话说,我不希望脚本在重新获得控制权之前等待子进程完成。只需几行代码就可以轻松完成此操作吗?我已经看过perldoc的系统命令,但它似乎没有做我想做的事情。如何在Perl中启动后台进程?

+1

应该在SO上。 – TheLQ 2011-03-30 02:13:28

请参阅系统:“system(1,@args)产卵外部进程,并立即返回其进程标志符,而无需等待它终止...的(Win32)”

+0

谢谢,这是在这里发布的最简单的解决方案。正是我在找什么。 – pepsi 2011-03-30 13:15:26

使用fork()函数。

http://hell.jedicoder.net/?p=82对基本用法有很好的解释。在perlport

+0

fork和exec是否是执行此操作的标准方法? – pepsi 2011-03-30 05:22:22

+1

@pepsi,在Unix上,是的。但Windows没有真正的“fork”。 – cjm 2011-03-30 06:33:26

+1

不,我通常会在带有posix shell的系统上执行'system(“someprogram&”)' – ysth 2011-03-30 07:32:45

尝试使用Win32::Job