История изменений
Исправление CrX, (текущая версия) :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel
. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Ну или вообще без кучи такой кучи скриптов вот так:
#!/bin/sh
# Выполняем скрипты с scr1 по scr15 параллельно:
seq 15 | parallel ./scr{}
# Когда они завершатся, выполняем скрипты с scr16 по scr32 параллельно:
seq 16 32 | parallel ./scr{}
# Когда и они завершатся, выполняем скрипты с scrt1 по scrt22 параллельно:
seq 1 22 | parallel ./scrt{}
# Ну и так далее
Ну или если не требуется вручную задавать, а можно все по маске, то без seq:
#!/bin/sh
parallel ::: ./scr[0-9]*
parallel ::: ./scrt*
Так сначала запустятся все scr, затем (только когда они завершатся), все scrt.
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом. То если, если не важно, в каком порядке их выполнять, лишь бы память всю не выжрали
parallel -j100 ::: ./scr[0-9t]*
Запустит все скрипты scr и scrt, из них всегда 100 будет работать параллельно. Как только один завершается, на его место запускается следующий в очереди.
Исправление CrX, :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel
. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Ну или вообще без кучи такой кучи скриптов вот так:
#!/bin/sh
# Выполняем скрипты с scr1 по scr15 параллельно:
seq 15 | parallel ./scr{}
# Когда они завершатся, выполняем скрипты с scr16 по scr32 параллельно:
seq 16 32 | parallel ./scr{}
# Когда и они завершатся, выполняем скрипты с scrt1 по scrt22 параллельно:
seq 1 22 | parallel ./scrt{}
# Ну и так далее
Ну или если не требуется вручную задавать, а можно все по маске, то без seq:
#!/bin/sh
parallel ::: ./scr[0-9]*
parallel ::: ./scrt*
Так сначала запустятся все scr, затем (только когда они завершатся), все scrt.
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом.
Исправление CrX, :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel
. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Ну или вообще без кучи такой кучи скриптов вот так:
#!/bin/sh
# Выполняем скрипты с scr1 по scr15 параллельно:
seq 10 | parallel ./scr{}
# Когда они завершатся, выполняем скрипты с scr16 по scr32 параллельно:
seq 16 32 | parallel ./scr{}
# Когда и они завершатся, выполняем скрипты с scrt1 по scrt22 параллельно:
seq 1 22 | parallel ./scrt{}
# Ну и так далее
Ну или если не требуется вручную задавать, а можно все по маске, то без seq:
#!/bin/sh
parallel ::: ./scr[0-9]*
parallel ::: ./scrt*
Так сначала запустятся все scr, затем (только когда они завершатся), все scrt.
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом.
Исправление CrX, :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel
. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Ну или вообще без кучи такой кучи скриптов вот так:
#!/bin/sh
# Выполняем скрипты с scr1 по scr15 параллельно:
seq 10 | parallel ./scr{}
# Когда они завершатся, выполняем скрипты с scr16 по scr32 параллельно:
seq 16 32 | parallel ./scr{}
# Когда и они завершатся, выполняем скрипты с scrt1 по scrt22 параллельно:
seq 1 22 | parallel ./scrt{}
# Ну и так далее
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом.
Исправление CrX, :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel
. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Ну или вообще без кучи такой кучи скриптов вот так:
#!/bin/sh
# Выполняем скрипты с scr1 по scr15 параллельно:
seq 10 | parallel ./scr{}
# Когда они завершатся, выполняем скрипты с scr16 по scr32 параллельно:
seq 16 32 | parallel ./scr{}
# Когда и они завершатся, выполняем скрипты с scrt1 по scrt22 параллельно:
seq 1 22 | parallel ./scr{}
# Ну и так далее
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом.
Исправление CrX, :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel
. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Ну или вообще без кучи такой кучи скриптов вот так:
#!/bin/sh
# Выполняем скрипты с scr1 по scr15 параллельно:
seq 10 | parallel ./scr{}
# Когда они завершатся, выполняем скрипты с scr16 по scr32 параллельно:
seq 16 32 | parallel ./scr{}
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом.
Исправление CrX, :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel
. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом.
Исходная версия CrX, :
Это я понял. То что он хочет, решается так: ему надо script2 и script3 переписать без &
, а с parallel. Тогда сперва выполнится script2 (все эти scr в нём), и только потом script3.
Но вообще если дело именно в памяти, то можно переписать не через жопу, а нормально и просто в самом parallel ограничить количество одновременно исполняемых скриптов подходящим для задачи числом.