J'ai essayé de googler, mais je ne trouvais rien qui se rapporte à mon problème particulier. J'essaie d'exécuter un script shell à partir de python, mais le script shell ne s'exécutait pas à cause d'une erreur d'autorisation refusée. Le code python que j'utilise est le suivant:
process = subprocess.Popen('run.sh', Shell=True, stdout=subprocess.PIPE)
process.wait()
....
os.killpg(pro.pid, signal.SIGTERM)
L'erreur que j'obtiens:
python RunScript.py "input"
/bin/sh: 1: run.sh: Permission denied
Le contenu de mon script Shell est:
#!/bin/sh
abspath=$(cd "$(dirname "$0")"; pwd)
CLASSPATH=$CLASSPATH:$abspath/"lib/*":$abspath/"bin"
export CLASSPATH
Java -classpath $CLASSPATH my.folder.path.Class $abspath/../data/data.txt $abspath/../data/data2.txt
Merci d'avance.
Vérifiez votre mode run.sh, s'il n'y a pas d'indicateur exécutable, définissez-le avec la commande
chmod +x run.sh
c'est parce que vous n'avez pas la permission d'exécuter ce script. Vous devrez donner une autorisation exécutable pour que ce script s'exécute.
chmod a + x run.sh