我正在尝试通过php exec()执行;一个bash文件,它运行基于curl循环脚本的进程。问题是我尝试过这些方法:
exec();
shell_exec();
sudo -S nice -n -20
sudo -i
> /dev/null 2>/dev/null & (achro)
并通过PHP exec()启动进程;如果我直接在SSH控制台上手动运行它作为一个命令,那么curl的响应速度会慢一些。
我现在就这样:
start.php运行:
echo shell_exec('echo "password" | sudo -S nice -n -20 ./new.sh > /dev/null 2>/dev/null &');
new.sh运行此
sudo -i /home/scripts/source/do.bat > /dev/null 2>/dev/null &
和do.bat运行此
cd /home/scripts/a/2
echo "" > output.txt
./check.bat & echo $! > check.pid
cd /home/scripts/a/6
echo "" > output.txt
./check.bat & echo $! > check.pid
当我在控制台直接执行./do.bat时,脚本运行速度非常快,卷曲响应就像我需要的那样一切正常,output.txt的输出速度也不错。
但是当我尝试用PHP exec()运行它时;卷曲响应变慢,并且不能按我的需要工作。另外你会问为什么我用start.php运行new.sh而不是直接用start.php运行do.bat?因为如果我这样做,我会得到一个非常奇怪的输出响应,-e写在文本上。
有人可以帮助我让它以相同的速度运行,就像我在控制台上手动运行命令一样吗?