2024-04-24 00:01:22 发布
网友
我正在尝试编写一个同时运行多个程序的.sh文件
我试过这个
prog1 prog2
但它运行prog1,然后等待prog1结束,然后启动prog2
那么我如何并行运行它们呢
如果您希望能够使用ctrl-c轻松运行和杀死多个进程,这是我最喜欢的方法:在(…)子shell中生成多个后台进程,并捕获SIGINT以执行kill 0,这将杀死子shell组中生成的所有进程:
ctrl-c
(…)
SIGINT
kill 0
(trap 'kill 0' SIGINT; prog1 & prog2 & prog3)
您可以有复杂的流程执行结构,所有操作都将通过一个ctrl-c来结束(只需确保最后一个流程在前台运行,即不要在prog1.3之后包含&):
prog1.3
&
(trap 'kill 0' SIGINT; prog1.1 && prog1.2 & (prog2.1 | prog2.2 || prog2.3) & prog1.3)
那么:
prog1 & prog2 && fg
这将:
prog1
prog2
要并行运行多个程序,请执行以下操作:
prog1 & prog2 &
如果需要脚本等待程序完成,可以添加:
wait
在您希望脚本等待它们的位置
如果您希望能够使用
ctrl-c
轻松运行和杀死多个进程,这是我最喜欢的方法:在(…)
子shell中生成多个后台进程,并捕获SIGINT
以执行kill 0
,这将杀死子shell组中生成的所有进程:您可以有复杂的流程执行结构,所有操作都将通过一个
ctrl-c
来结束(只需确保最后一个流程在前台运行,即不要在prog1.3
之后包含&
):那么:
这将:
prog1
李>prog2
,并将其保持在前台,这样您就可以用ctrl-c
关闭它李>prog2
时,将返回prog1
的前台,因此也可以使用ctrl-c
关闭它李>要并行运行多个程序,请执行以下操作:
如果需要脚本等待程序完成,可以添加:
在您希望脚本等待它们的位置
相关问题 更多 >
编程相关推荐