Я пытаюсь записать .sh файл, который запускает много программ одновременно
Я попробовал это
prog1
prog2
Но это работает, prog1 затем ожидает до prog1 концы и затем запускает prog2...
Таким образом, как я могу выполнить их параллельно?
Есть очень полезная программа, которая вызывает nohup.
nohup - run a command immune to hangups, with output to a non-tty
С GNU Parallel http://www.gnu.org/software/parallel/ это так же просто, как:
(echo prog1; echo prog2) | parallel
Или, если хотите:
parallel ::: prog1 prog2
Подробнее:
Вы можете попробовать ppss . ppss довольно мощный - вы даже можете создать мини-кластер. xargs -P также может быть полезен, если вам нужно выполнить партию удручающе параллельной обработки.
#!/bin/bash
prog1 & 2> .errorprog1.log; prog2 & 2> .errorprog2.log
Перенаправление ошибок в отдельные журналы.