2016-09-30 2 views
1

У меня есть скрипт, который вводит пользователя через аргументы командной строки. Он обрабатывает аргументы и запускает команды python. Например:Выполнять команды python параллельно в сценариях оболочки Linux

./run.sh p1 p2 p3 p4 
python abc.py p1 p4 
python xyz.py p2 p3 

где p1, p2, p3 и p4 может быть любого типа.

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

Я пробовал параллельно GNU, но он, похоже, не работает.

+0

Я работал над проектом Python, который используется параллелизм для их гидродинамического моделирования и они использовали OpenMPI. Если вы хотите увидеть, как они их реализовали, вы можете найти что-то на своем github: https://github.com/GeoscienceAustralia/anuga_core – Usagi

+0

Здесь есть замечательный ответ: http://stackoverflow.com/a/10909842/5381704 –

ответ

1

Попробуйте запустить каждый процесс в фоновом режиме, добавив & в конец команды.

python abc.py p1 p4 & 

python xyz.py p2 p3 & 

Some Info

+0

Помните окончательное "ожидание" –

0

Ваша задача не где GNU Parallel козыри, но это может быть сделано:

parallel ::: "python abc.py p1 p4" "python xyz.py p2 p3"