Linux 在初始化/bash脚本中同时执行多个程序
您好,我正在使用一个使用rcS脚本引导的模拟器,这是我的脚本Linux 在初始化/bash脚本中同时执行多个程序,linux,bash,scripting,rcs,Linux,Bash,Scripting,Rcs,您好,我正在使用一个使用rcS脚本引导的模拟器,这是我的脚本 cd /tests ./test1 & ./test2 & ./test3 & ./test4 exit 我想要的是同时运行所有的测试,并且只有在前面的所有测试都完成后才执行exit命令。不仅当测试4完成时,这是可能的吗?。 谢谢。类似于 cd /tests ./test1 & ./test2 & ./test3 & ./test4 & wait exit (我假设bash
cd /tests
./test1 &
./test2 &
./test3 &
./test4
exit
我想要的是同时运行所有的测试,并且只有在前面的所有测试都完成后才执行exit命令。不仅当测试4完成时,这是可能的吗?。
谢谢。类似于
cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit
(我假设bash shell)您可以使用wait:
./test1 &
./test2 &
./test3 &
./test4 &
wait
从bash手册页:
等等
等待每个指定的进程并返回其
终止状态。每个n可以是一个
过程ID或工作规范;如果
给出了作业规范,所有流程都在
那份工作的管道正在等待。
如果没有给出n,
等待所有当前活动的子进程,并且
返回状态为零。如果n
指定不存在的进程或进程
作业,返回状态为127。
否则,返回状态为
最后一个进程的退出状态
等待的过程或工作
xargs
可以支持并行
就这样,
seq 4|xargs -i -n 1 -P 4 ./test{}
您可能希望将“/exit”替换为“exit”以退出shell脚本。如果您实际上正在该目录中运行一个名为“exit”的可执行文件或脚本,我建议将其重命名为不太容易混淆的名称。哪个标志激活并行执行?所有的子进程都几乎/完全同时启动吗?注意,如果您试图运行php脚本,那么php的配置将阻止后台运行的进程输出任何内容。我发现谷歌很难知道如何开启默认行为。我最终发现了这个问题: