exec () продолжает выполнять команду «Снова и снова», как бесконечный цикл, несмотря на отсутствие цикла в программе

ДОПОЛНЕНИЕ: Проблема в следующем вопросе связана с ВТОРОЙ команда. Когда я закомментирую второе утверждение, первое работает так, как ожидалось, и дает ожидаемые результаты. : s


Мне нужно было запустить две команды терминала из PHP ОДНОВРЕМЕННО, и ничто не решало мою проблему (как вы можете видеть Вот а также Вот, если хотите). Первая команда должна запустить Tshark на 5 секунд и перехватить сетевой трафик (пакеты). Вторая команда должна была генерировать некоторые сетевые пакеты и отправлять их. Вся идея заключается в том, что сетевые пакеты, создаваемые второй командой, должны быть перехвачены Tshark и запущены первой командой.

Другими словами, мне нужно было запустить Tshark в фоновом режиме, и, не дожидаясь его завершения, мне нужно было запустить вторую команду.

Наконец я читаю где-нибудь, если мы закончим команду терминала &, команда запускается на заднем фоне, и мы можем продолжить выполнение других команд на переднем плане. Я думал, что это решение моей проблемы!

Затем я написал следующий сценарий.

ПРОБЛЕМА:

Когда я выполняю этот скрипт в браузере, веб-страница продолжает загружаться, и загрузка никогда не заканчивается. Кроме того, очевидно, что tshark продолжает работать в фоновом режиме захвата пакетов, а не останавливается через 5 секунд. Я говорю это, потому что пакеты сохраняются в файлах захвата (capture.pcap а также capture.txt — файлы, в которых хранятся захваченные пакеты, см. команду в скрипте) ЕСЛИ Я ВРУЧНУЮ КОНЕЦ ЗАГРУЗКИ ВЕБ-СТРАНИЦЫ В БРАУЗЕР.

Кроме того, когда я вручную прекращаю загрузку веб-страницы и открываю capture.pcap файл в wireshark, я вижу, что пакеты, которые должны были быть отправлены ОДИН РАЗ второй командой, были отправлены СТО раз.

ВОПРОСЫ:

  1. Означает ли это, что обе команды выполняются снова и снова и снова, как в бесконечном цикле?

  2. В скрипте нет петель. Тогда почему этот бесконечный цикл похож на поведение? Как я могу это исправить?

СЦЕНАРИЙ:

shell_exec("tshark  -a duration:5  -w /var/www/html/Test/capture.pcap -V > capture.txt &");

shell_exec("./mtu  -d0  -a43020008  -g43010008  -i987654321  -s'Mary'  2>&1");

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]