Bash - Как стартирате множество програми паралелно с bash скрипт

Опитвам се да напиша файл , който стартира много програми по същото време

Но това започва prog1, след това изчаква prog1 да завърши и след това стартира prog2.

И така, как мога да ги пускам паралелно?

  • Стартирайте prog1 .
  • Изпратете го на заден план, но запазете изхода му.
  • Стартирайте prog2 и я задръжте на преден план, за да можете да я затворите с ctrl-c .
  • Когато затворите prog2, ще се върнете към fore1 prog1, така че можете да я затворите и с ctrl-c .

Или, ако предпочитате:

Можете да използвате изчакване:

Той присвоява PID променливите на оригиналната програма на променливите ($! Дали е стартиран последният PID процес), след което командата за изчакване ги чака. Това е добре, защото ако убиете скрипта, той убива и процеси!

Пренасочване на грешки за отделяне на регистрационни файлове.

Има много полезна програма, която извиква nohup.

Можете да опитате ppss. ppss е доста мощен - можете дори да създадете мини клъстер. xargs -P също може да бъде полезен, ако имате нужда от партида неудобна паралелна обработка.

Ето функцията, която използвам за паралелен паралелен паралелен процес (n = 4 в примера):

Ако max_children е зададен на броя на ядрата, тази функция ще се опита да избегне времето на празен ход.