Estoy intentando ejecutar un script de shell con el comando nohup. El script de shell toma una matriz de archivos, ejecuta un programa python en cada archivo en un bucle y agrega el resultado a un archivo. Esto funciona bien en el servidor, pero si trato de usar el comando nohup no funciona. He ejecutado con éxito otros programas utilizando nohup en este servidor, pero no este script.script de shell que no funciona con 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
El programa funciona bien cuando lo ejecuto mientras permanece conectado al servidor, por ejemplo
./batch.sh > /dev/null &
./batch.sh > ./output.txt &
Sin embargo, cuando intento ejecutarlo con el comando nohup,
nohup ./batch.sh > /dev/null &
si salgo del servidor y vuelvo, el archivo de salida (batch_results.dat) no tiene ningún dato.
Estoy seguro de que me falta algún arreglo o comando simple aquí. ¿Algunas ideas?
Edit: El programa fof.py produce dos archivos que se utilizan como entrada para mdisk5.py. Cuando salgo del servidor mientras ejecuto nohup, se producen estos dos archivos, pero solo para el primer archivo de entrada '0010.dat'. Los archivos de salida batch0.dat y batch_results.dat permanecen vacíos.
sacar el '>/dev/null' para ver si se imprime alguna información útil? Además, ¿noh no pone ningún resultado en un archivo 'nohup.txt' o similar? Buena suerte. – shellter
No puedo encontrar el archivo nohup.txt en el directorio de trabajo. ¿Esto va a un directorio predeterminado diferente? – ricitron
la documentación de nohup que acabo de buscar dice que es dir actual o $ HOME. intente esto en la línea de comando 'man nohup' para ver los detalles de su sistema. Buena suerte. – shellter