Executando várias instâncias de shell com diferentes parâmetros ao mesmo tempo

0

Suponha que eu tenha um script python que eu queira executar com diferentes combinações de parâmetros (eu tenho o MacBook Pro). Se eu usar um script de shell para fazer isso (digamos, run.sh ), faz sentido executar run.sh várias vezes ao mesmo tempo, cada um com combinações de parâmetros diferentes? Em ordem, diferentes combinações de parâmetros se tocam enquanto ambos estão rodando na memória? Isso é algo como o conceito de proteção de memória?

    
por Katherine 18.02.2018 / 00:00

1 resposta

1

Isso depende muito do que o script python e run.sh fazem.

Então, vamos dar um exemplo muito simples:

#!/bin/bash

s=$(( RANDOM%5 ))
echo Sleeping for $s > /tmp/foo
sleep $s
echo You entered $1 >> /tmp/foo
cat /tmp/foo

Agora, se eu fiz

./run.sh 1 &
./run.sh 2 &
./run.sh 3 &

Não tenho ideia de qual será o resultado. Isso porque o script tem um único recurso ( /tmp/foo ) que não pode ser acessado várias vezes; um script irá sobrescrever os resultados de outro.

Se, em vez disso, o script foi escrito para usar recursos "temporários" adequados, ele pode ser chamado várias vezes:

#!/bin/bash

tmpfile=$(mktemp)

s=$(( RANDOM%5 ))
echo Sleeping for $s > $tmpfile
sleep $s
echo You entered $1 >> $tmpfile
cat $tmpfile
rm $tmpfile

Agora, você pode chamar isso quantas vezes quiser e ele funcionará corretamente.

Bem ... dados memória e limites de CPU, claro!

    
por 18.02.2018 / 02:30