0

我有这个代码:

$process = Process::fromShellCommandline('bash ./receive.sh \
    url=' . env('SGW_URL') . ' \
    cert=certs/privateKey.p12?' . env('SGW_CERT_PASS'),
        '/var/www/sgwClientFiles/');

    $process->run();
    $process->getCommandLine();
    if (!$process->isSuccessful()) {
        throw new ProcessFailedException($process);
    }
    
    $process->stop(15);

    return $process;

它不会在 15 秒后停止。相反,我得到“超过 60 秒的超时”错误。

问题是,我尝试从命令行运行的命令不会自行停止,必须从脚本中停止。任何想法为什么方法“stop()”不能正常工作?

4

1 回答 1

0

如果有人想知道,我解决了这个问题如下:

$process->start();
    while (time() - $process->getStartTime() <= 15) {
        usleep(2000);
    }

    $process->stop();
于 2021-10-29T11:16:36.993 回答