J'ai un problème avec le sous-processus du module; Je cours un manuscrit de Python:Bloc de sous-processus Python
subprocess.Popen('./run_pythia.sh', shell=True).communicate()
et quelquefois il bloque juste et il ne finit pas pour exécuter le manuscrit. Avant que j'utilisais .wait()
, mais je switched to .communicate()
. Néanmoins, le problème continue.
D'abord le script compile quelques fichiers, il exécute dans un fichier:
run_pythia.sh
:
#!/bin/bash
#PBS -l walltime=1:00:00
./compile.sh
./exec > resultado.txt
compile.sh
:
O=`find ./ -name "*.o" | xargs`
# LOAD cernlib2005
module load libs/cernlib/2005
# Compile and Link
FC=g77
CERNLIBPATH="-L/software/local/cernlib/2005/lib -lpacklib"
$FC call_pyth_mix.f analise_tt.f $O $CERNLIBPATH -o exec
Avez-vous besoin d'interagir avec le processus? Ou lisez-vous simplement la sortie? Vous devriez utiliser '.communicate()' car cela empêchera tout problème de blocage. Cependant, si vous avez besoin d'interagir avec le processus en écrivant à stdin et en lisant depuis stderr/stdout, c'est une toute nouvelle boule de cire. – dlamotte