加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – exec()超时

发布时间:2020-12-13 13:43:33 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找一种方法来运行超时的 PHP进程.目前我只是使用 exec() ,但它没有提供超时选项. 我还尝试过使用 proc_open() 打开流程并在生成的管道上使用 stream_set_timeout() ,但这也不起作用. 那么,有没有办法用超时运行命令(精确的PHP命令)? (PS:这适用于m
我正在寻找一种方法来运行超时的 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);

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读