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

ADDENDUM: проблема в следующем вопросе объясняется командой SECOND . Когда я комментирую второй оператор, первый работает как ожидалось и дает ожидаемые результаты. : s


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

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

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

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

ПРОБЛЕМА:

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

Кроме того, когда я вручную останавливаю загрузку веб-страницы и открываю файл capture.pcap в wirehark, я вижу, что пакеты, которые должны были быть отправлены ONCE второй командой, были отправлены сотнями раз.

ВОПРОСОВ:

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

Related of "exec () продолжает выполнение команды Again and Again как бесконечный цикл, несмотря на отсутствие цикла в программе"