首页 > 解决方案 > 在 PHP 循环中为每个 SHELL_EXEC 设置超时

问题描述

如何在 php 循环中管理 shell_exec() 超时的最佳方法是什么?

我试图timeout 10在命令前面添加,但它在第一次失败时打破了整个循环。我希望每个命令在 10 次循环中最多只能执行 10 秒,并在成功时返回数据。

<?php
function ShellC($params) {

    $n = 0;
    foreach ($params as $param) {
        if ( ++$n < 11 ) {
            $data = shell_exec('timeout 10 command_execute_param 2>/dev/null');
            if ( !empty($data) ) {
                return $data;
            }
        }
    }

    return false;
}

谢谢您的帮助!

标签: phpforeachtimeoutexecshell-exec

解决方案


推荐阅读