我正在编写几个PHP脚本来执行程序,捕获它的STDOUT并在完成时捕获返回代码。这些程序可能会立即返回,或在20分钟内完成,因此我需要在完成时进行监控。在后台执行程序,并捕获返回代码(php和windows)
我找不到在后台启动程序并捕获[外部日志文件]返回代码的方法。如果我简单地使用exec或proc_open,我的php脚本就会被阻塞,当这个过程需要20分钟时,这是不好的。
即使我无法捕获返回码,我需要知道该过程何时完成。 (我可以把错误代码显示在输出代替)
我可以使用exec("start my.exe");
,赶上STDOUT,但我不能让返回代码(还有不知道什么时候,它的完成)
我想过通过批处理文件exec(start my.bat);
并在批处理文件中捕获返回代码,但我的命令行有动态选项,所以我宁愿做类似的事情;
exec("start cmd \"echo hello\");
编辑:但我还没有找到一种方法来在命令行上动态生成批处理命令列表。如果有人知道一种方法,我会非常感激。
cmd /C "echo hello"
是解决这一
不需要跨平台,严格窗口(XP-7)
你在做什么与返回代码?在网站上输出它? – 2010-12-10 11:17:41
是的,我使用返回码来确定错误和下一个阶段。但它也可以告诉我这个过程已经完成。 – 2010-12-10 11:41:36