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!