Naw*_*ikh 4 shell-script nohup background-process
我必须运行 100 个部分的脚本,同时确保在任何时间点只有 10 个部分并行运行。
下面的脚本将同时触发所有 100 个进程:-
for i in {1..100}
do
nohup ksh my_background_script.ksh -mod ${i} &
done
Run Code Online (Sandbox Code Playgroud)
有两种常用的工具xargs
和 GNU parallel
:
xargs
较旧,默认情况下经常安装,但更受限制。你会像这样使用它:
seq 1 100 | xargs -P 10 -I {} nohup ksh my_background_script.ksh -mod {} &
Run Code Online (Sandbox Code Playgroud)
的-P 10
是告诉它运行在并行10个处理。
GNU parallel
,虽然默认情况下没有安装在许多系统上,但应该可以随时用于任何 GNU/Linux 系统,并且比xargs
. 你会像这样使用它(可能,细节取决于你正在运行的内容):
parallel -j 10 nohup ksh my_background_script.ksh -mod ::: {1..100}
Run Code Online (Sandbox Code Playgroud)
关于这两个程序及其各自用途的更多细节可以在这里找到:GNU parallel vs & (我的意思是背景) vs xargs -P