微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);

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

原文地址:https://www.jb51.cc/php/138458.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐