Прогноз: fork: Невозможно выделить память

Использование множества параллельных процессов bash:

process1 &
...
process30 &

Выполнение нескольких операций git в каждом процессе случайным образом приведет к:

 fork: Cannot allocate memory

Система CentOS 7 без свопа, я бы хотел подождать, чтобы запустить следующий процесс, пока он не станет безопасным. Как лучше всего это сделать?

-1
задан 27 February 2016 в 05:06
1 ответ

Как и вы, он запустит все процессы в параллельном режиме, поместив их в фоновый режим. Это то, что делает амперсанд ( & ).

В этом случае выполните команды последовательно, т.е. е., один за другим.

Для этого разделите каждый процесс точкой с запятой (; ) или новой строкой без последнего амперсанда, например:

process1; process2; ... ; process30

или

process1
...
process30

Таким образом, он запустит process1, и когда он закончится, запустит process2, а когда process2 завершится, он запустит process3 и так далее, пока process30.

Если вы хотите запустить следующую команду, только если текущая команда не выполняет Если это не так, разделите команды двумя амперсандами ( && ), например:

process1 && process2 && ... && process30
1
ответ дан 5 December 2019 в 19:49

Теги

Похожие вопросы