dsdzvprlp51692469 2014-10-08 11:10
浏览 88

PHP异步执行bash脚本

I am trying to run bash scripts on PHP asynchronous, my current scripts waits until first script is executed before it starts to run the next one:

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

I found out to run async, i must put '&' at the end of my script to run it in foreground:

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

This script will pass result of $(nmap -p 80 google.com) to my index.php and run itself in foreground. Problem is - i need to cancel that process once the script is finshed. I tried doing it like so:

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

I pass a second parameter to index.php ($BASHPID) - process id of that bash script, then inside that index.php file, i run another exec command to kill that process. Problem is - it passes wrong process ID, and it doesn't kill the process in the end.

Any suggestions?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?