php – exec()超时

前端之家收集整理的这篇文章主要介绍了php – exec()超时前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种方法来运行超时的 PHP进程.目前我只是使用 exec(),但它没有提供超时选项.

我还尝试过使用proc_open()打开流程并在生成的管道上使用stream_set_timeout(),但这也不起作用.

那么,有没有办法用超时运行命令(精确的PHP命令)? (PS:这适用于max_execution_time限制失败的情况,因此无需建议.)

(顺便说一下,我还需要检索进程的返回码.)

我对这个主题进行了一些搜索并得出结论,在某些情况下(如果你使用的是linux)你可以使用’timeout’命令.它非常灵活
Usage: timeout [OPTION] DURATION COMMAND [ARG]...
  or:  timeout [OPTION]

在我的特定情况下,我正在尝试从PHP运行sphinx索引器,有点迁移数据脚本所以我需要重新索引我的sphinx文档

exec("timeout {$time} indexer --rotate --all",$output);

然后我将分析输出并决定再尝试一次,或者抛出异常并退出我的脚本.

猜你在找的PHP相关文章