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 е зададен на броя на ядрата, тази функция ще се опита да избегне времето на празен ход.