首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个exec命令php

多个exec命令php
EN

Stack Overflow用户
提问于 2011-08-10 14:48:20
回答 1查看 5.2K关注 0票数 1

可能重复:

php in background exec() function

我正在尝试从PHP运行两个exec命令。其中一个脚本可能运行几分钟,并且只能有一个实例。第二个执行部分只检查第一个进程是否正在运行,或者允许您再次运行它,或者重定向您。代码就像这样。

这是主要的过程。

代码语言:javascript
复制
$command = '/home/user/active/Nem-Swd.elf 30 > /dev/null 2>&1 & echo $!';

这是一个检查另一个是否已经在运行的进程。

代码语言:javascript
复制
exec("ps ax | grep $name 2>&1", $output);

我知道,在php API中,它说:

如果一个程序是用这个函数启动的,为了使它在后台继续运行,程序的输出必须被重定向到一个文件或另一个输出流。如果不这样做,将导致PHP挂起,直到程序执行结束。

但我不明白这意味着什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-10 14:59:40

这意味着,如果您运行exec命令而不重新路由它的输出,那么当前的PHP脚本将等待该命令完成,然后终止该脚本。既然您正在将输出路由到标准输出,我相信您应该会没事的。如果您只是运行exec($commandJob),那么您就会遇到这个问题。

这个问题似乎已经得到了回答:

php in background exec() function

至少(例如)您需要这样做才能使它在后台运行:

exec("php test.php &");

启动进程的其他方法可能也值得研究:http://www.php.net/manual/en/book.pcntl.php

http://php.net/manual/en/function.popen.php

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7012770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档