Как запустить несколько скриптов параллельно

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

if [ -x /bin/ksh ]
then
    output=`/bin/ksh whence ls`
fi

if [ -x /bin/sh ]
then
    output=`/bin/sh which ls`
fi
3
27.02.2018, 04:06
3 ответа

Установка gnu coreutils, уже скомпилированных с помощью Rudix :

sudo rudix install coreutils

Или загрузка и gui установка Rudix coreutils

-121--7185-
../_Cscripts/v2csv.pl -v -F reach results/Heterogeneous*.vec > ./results/csv/reach.csv &
../_Cscripts/v2csv.pl -v -F roundTrip results/Heterogeneous*.vec > ./results/csv/RT.csv &
../_Cscripts/v2csv.pl -v -F downlink results/Heterogeneous*.vec > ./results/csv/DL.csv &
../_Cscripts/v2csv.pl -v -F clusters results/Heterogeneous*.vec > ./results/csv/clusters.csv &
wait

& Помещает программу в фоновый режим. жди, пока они остановятся, если тебе не все равно.

-121--97712-

Можно использовать следующий синтаксис:

mkdir ./results/csv && (script0 & script1 &)

Сценарии будут запускаться в фоновом режиме, не дожидаясь их завершения. В скобках представлена группа субоболочек (так что скрипт не будет выполняться в случае сбоя команды mkdir), и & запрашивает фоновое выполнение (сразу же возвращает управление внешней оболочке).

1
27.01.2020, 21:11

Если у вас установлен gnu parallel, то вы можете создать скрипт, содержащий только команды, например:

../perlscripts/v2csv.pl -v -F reach results/Heterogeneous*.vec > ./results/csv/reach.csv
../perlscripts/v2csv.pl -v -F roundTrip results/Heterogeneous*.vec > ./results/csv/RT.csv
../perlscripts/v2csv.pl -v -F downlink results/Heterogeneous*.vec > ./results/csv/DL.csv
../perlscripts/v2csv.pl -v -F clusters results/Heterogeneous*.vec > ./results/csv/clusters.csv

и затем запустить их параллельно:

mkdir ./results/csv && parallel :::: myscript.sh

Альтернативно, вызывая команду и используя {} - строка замены по умолчанию:

mkdir ./results/csv && parallel ../perlscripts/v2csv.pl -v -F {} \
results/Heterogeneous*.vec '>' ./results/csv/{}.csv ::: reach roundTrip downlink clusters

будет выполнять параллельно следующие команды:

../perlscripts/v2csv.pl -v -F reach results/Heterogeneous*.vec > ./results/csv/reach.csv
../perlscripts/v2csv.pl -v -F roundTrip results/Heterogeneous*.vec > ./results/csv/roundTrip.csv
../perlscripts/v2csv.pl -v -F downlink results/Heterogeneous*.vec > ./results/csv/downlink.csv
../perlscripts/v2csv.pl -v -F clusters results/Heterogeneous*.vec > ./results/csv/clusters.csv
5
27.01.2020, 21:11
../_Cscripts/v2csv.pl -v -F reach results/Heterogeneous*.vec > ./results/csv/reach.csv &
../_Cscripts/v2csv.pl -v -F roundTrip results/Heterogeneous*.vec > ./results/csv/RT.csv &
../_Cscripts/v2csv.pl -v -F downlink results/Heterogeneous*.vec > ./results/csv/DL.csv &
../_Cscripts/v2csv.pl -v -F clusters results/Heterogeneous*.vec > ./results/csv/clusters.csv &
wait

И и ставит программу в фоновом режиме. Подождите, ждет, чтобы они останавливались, если вы заботитесь.

2
27.01.2020, 21:11

Теги

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