Linux — PHP выполняет сценарии bash асинхронно

Я пытаюсь запустить bash-скрипты на PHP асинхронно, мои текущие скрипты ждут, пока первый скрипт не будет запущен, прежде чем он запустит следующий:

for ($i = 0; $i < 10; $i++) {
exec('php /var/www/index.php $(nmap -p 80 google.com)');
}

Я выяснил, чтобы запустить асинхронный, я должен поставить&’в конце моего сценария, чтобы запустить его на переднем плане:

for ($i = 0; $i < 10; $i++) {
exec('php /var/www/index.php $(nmap -p 80 google.com) &');
}

Этот скрипт передаст результат $ (nmap -p 80 google.com) в мой index.php и запустится на переднем плане. Проблема в том, что мне нужно отменить этот процесс, как только сценарий будет завершен. Я пытался сделать это так:

for ($i = 0; $i < 10; $i++) {
exec('php /var/www/index.php $(nmap -p 80 google.com) $BASHPID &');
}

Я передаю второй параметр в index.php ($ BASHPID) — идентификатор процесса этого сценария bash, затем внутри этого файла index.php я запускаю другую команду exec, чтобы завершить этот процесс. Проблема в том, что он передает неправильный идентификатор процесса и в конце не убивает процесс.

Какие-либо предложения?

0

Решение

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

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

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

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