使用Perl运行并监视进程并捕获其所有输出(在Windows上)?

时间:2014-08-13 14:58:43

标签: perl ipc strawberry-perl

我希望能够执行以下操作(它应该适用于Windows):

  • 运行外部命令/进程
  • 捕获所有stdout stderr(如果有)
  • 异步执行此操作(脚本不能等待进程终止。)
  • “监控”:当流程终止时,请知道其退出代码
  • “监控”:如果进程没有终止(超时),则能够终止所述进程。
  • 我特意做需要通过stdin
  • 向此过程发送任何内容

我不得不说,我在IPC:: ... Open3RunCmd下的所有内容之间完全迷失了。哦,我......添加Capture::Tiny等等,以及为Win32提到的警告。

上面推荐使用Perl“工具箱”中的哪些模块?草莓Perl 5.14及以上。任何其他CPAN模块都可以。

1 个答案:

答案 0 :(得分:0)

在Windows上我使用ActiveState的ActivePerl。

有一个Win32接口。看一下Win32 :: Process,我认为这可以满足您在Windows上运行进程的一些要求。

http://docs.activestate.com/activeperl/5.18/lib/Win32/Process.html

您可以查看其他Win32接口

小心一些CPAN模块不需要在Windows上工作,尤其是涉及多线程时,因为它首先在Unix平台上开发。

如果MINGW32在Windows上是一个类似Unix的解决方案,我会很好奇。

希望有所帮助