РЕДАКТИРОВАТЬ:
ОБНОВЛЕНИЕ: I должен был упомянуть , что файлы конфигурации не обязательно имеют последовательное имя и могут иметь любое имя, Я просто сделал их такими, чтобы сделать пример как можно более простым.
parallel [options] [command [arguments]] < list_of_arguments
< list_of_arguments
решает это определение задачи после изменения.
parallel --jobs 4 \
--load 50% \
--bar \
--eta "( echo 1st-for-{}; echo 2nd-for-{} )" < aListOfAdHocArguments.txt
0% 0:5=0s
1st-for-Abraca
2nd-for-Abraca
20% 1:4=0s
1st-for-Dabra
2nd-for-Dabra
40% 2:3=0s
1st-for-Hergot
2nd-for-Hergot
60% 3:2=0s
1st-for-Fagot
2nd-for-Fagot
80% 4:1=0s
100% 5:0=0s
Пожалуйста, уважайте DoS'ы и не-StackOverflow и, скорее, никогда не попадайте под первоначальное определение проблемы, это несправедливо по отношению к другим участникам и против сетевого этикета StackOverflow о том, как лучше всего задавать вопросы, сформулированные в MCVE, которые помогают поддерживать высокий уровень профессиональных стандартов среди членов сообщества, участвующих в сообществе - это честно и честно, не правда ли?
Q : Как я могу запустить их параллельно, скажем скажем, 4 в то время , поэтому я не убиваю сервер , где я их запускаю?
Прекрасное задание для GNU parallel
* 1 042 * Сначала давайте проверим локальную хост-экосистему (экзосистемы, выполняющие
parallel
-расположенные над
ssh
-подключенными удаленными хостами, возможно, но выходящие за рамки этого поста):
parallel --number-of-cpus
parallel --number-of-cores
parallel --show-limits
Для получения дополнительной информации о конфигурации за пределы --jobs 4
, потенциально --memfree
или --noswap
, --load <max-load>
или --keep-order
и --results <aFile>
или --output-as-files
:
man parallel
parallel --jobs 4 \
--bar \
--eta "( script1.sh cfg{}.cfg; script2.sh cfg{}.cfg )" ::: {1..123}
Здесь
эмулируется только парой тандемов echo
-s для индексов с пониженным счетом, поэтому индикаторы выполнения невидимы и E stimated- T ime- of- A rrival --eta
показания почти мгновенные ...:
parallel --jobs 4 \
--load 50% \
--bar \
--eta "( echo 1st-for-cfg-{}; echo 2nd-for-cfg-{} )" ::: {10..0}
0% 0:11=0s 7
1st-for-cfg-10
2nd-for-cfg-10
9% 1:10=0s 6
1st-for-cfg-9
2nd-for-cfg-9
18% 2:9=0s 5
1st-for-cfg-8
2nd-for-cfg-8
27% 3:8=0s 4
1st-for-cfg-7
2nd-for-cfg-7
36% 4:7=0s 3
1st-for-cfg-6
2nd-for-cfg-6
45% 5:6=0s 2
1st-for-cfg-5
2nd-for-cfg-5
54% 6:5=0s 1
1st-for-cfg-4
2nd-for-cfg-4
63% 7:4=0s 0
1st-for-cfg-3
2nd-for-cfg-3
72% 8:3=0s 0
1st-for-cfg-2
2nd-for-cfg-2
81% 9:2=0s 0
1st-for-cfg-1
2nd-for-cfg-1
90% 10:1=0s 0
1st-for-cfg-0
2nd-for-cfg-0