РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1056 of 1361 menu

Метод isRunning

Метод isRunning класса Process возвращает булево значение: true, если процесс запущен и ещё не завершился, и false в противном случае. Метод не принимает параметров. Его удобно использовать для проверки состояния асинхронного процесса, запущенного через метод start, перед вызовом wait или чтением вывода.

Синтаксис

$process->isRunning()

Пример

Давайте запустим процесс асинхронно и проверим его состояние сразу после запуска:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Process\Process; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['ls', '-la']); $process->start(); $res = $process->isRunning(); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

true

Пример

Давайте дождёмся завершения процесса и проверим состояние повторно:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Process\Process; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['ls', '-la']); $process->start(); $process->wait(); $res = $process->isRunning(); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

false

Пример

Давайте проверим состояние процесса до его запуска:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Process\Process; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['ls', '-la']); $res = $process->isRunning(); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

false

Пример

Давайте используем isRunning в цикле ожидания завершения процесса:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Process\Process; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['sleep', '2']); $process->start(); while ($process->isRunning()) { usleep(100000); } $res = $process->getOutput(); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

""

Смотрите также

  • метод run,
    который запускает процесс и дожидается его завершения
  • метод start,
    который запускает процесс асинхронно
  • метод wait,
    который ожидает завершения запущенного процесса
  • метод getOutput,
    который возвращает стандартный вывод процесса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить