PHP异步执行bash脚本

时间:2014-10-08 11:10:11

标签: php linux bash sh

我正在尝试在PHP上运行异步的bash脚本,我的当前脚本会等到第一个脚本在开始运行下一个脚本之前执行:

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

我发现运行异步,我必须把&#39;&amp;&#39;在我的脚本结束时在前台运行它:

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脚本的进程ID,然后在该index.php文件中,我运行另一个exec命令来终止该进程。问题是 - 它传递了错误的进程ID,并且它最终不会终止进程。

有什么建议吗?

0 个答案:

没有答案