J'essaie d'exécuter un script shell avec la commande nohup. Le script shell prend un tableau de fichiers, exécute un programme python sur chaque fichier dans une boucle et ajoute la sortie dans un fichier. Cela fonctionne très bien sur le serveur, mais si j'essaie d'utiliser la commande nohup cela ne fonctionne pas. J'ai couru avec succès d'autres programmes using nohup sur ce serveur, juste pas ce manuscrit.Le script shell ne fonctionne pas avec nohup
#!/bin/sh
ARRAY=(0010.dat 0020.dat 0030.dat)
rm batch_results.dat
touch batch0.dat
touch batch_results.dat
for file in ${ARRAY[@]}
do
python fof.py $file > /dev/null
python mdisk5.py > ./batch0.dat
tail -1 batch0.dat
tail -1 batch0.dat >> batch_results.dat
done
Le programme fonctionne très bien quand je le lance, tout en restant connecté au serveur, par exemple
./batch.sh > /dev/null &
./batch.sh > ./output.txt &
Cependant, lorsque je tente de l'exécuter avec la commande nohup,
nohup ./batch.sh > /dev/null &
si je quitte le serveur et que je reviens le fichier de sortie (batch_results.dat) n'a aucune donnée.
Je suis sûr qu'il me manque un correctif simple ou une commande ici. Des idées?
Editer: Le programme fof.py produit deux fichiers qui sont utilisés en entrée pour mdisk5.py. Lorsque je quitte le serveur pendant l'exécution de nohup, ces deux fichiers sont produits, mais uniquement pour le premier fichier d'entrée '0010.dat'. Les fichiers de sortie batch0.dat et batch_results.dat restent vides.
prendre le '>/dev/null' pour voir si des informations utiles sont imprimées? De plus, nohup ne met-il pas de sortie dans un fichier 'nohup.txt' ou similaire? Bonne chance. – shellter
Je ne trouve pas le fichier nohup.txt dans le répertoire de travail. Est-ce que cela va dans un autre répertoire par défaut? – ricitron
la documentation de nohup que je viens de googler a dit que c'est soit dir actuel ou $ HOME. essayez ceci sur la ligne de commande 'man nohup' pour voir les détails de votre système. Bonne chance. – shellter