Я пытаюсь запустить скрипт оболочки с помощью команды nohup. Сценарий оболочки принимает массив файлов, запускает программу на python для каждого файла в цикле и добавляет вывод в файл. Это прекрасно работает на сервере, но если я пытаюсь использовать команду nohup, она не работает. Я успешно запустил другие программы, использующие 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
Программа работает нормально, когда я запускаю ее, оставаясь подключенным к серверу, например
./batch.sh > /dev/null &
./batch.sh > ./output.txt &
Однако, когда я пытаюсь запустить его с помощью команды nohup,
nohup ./batch.sh > /dev/null &
если я выйду из сервера и вернусь, выходной файл (batch_results.dat) не содержит никаких данных.
Я уверен, что здесь отсутствует какое-то простое исправление или команда. Есть идеи?
Edit:
Программа fof.py создает два файла, которые используются в качестве входных данных для mdisk5.py.
Когда я выхожу из сервера во время работы nohup, эти два файла создаются, но только для первого входного файла '0010.dat'. Выходные файлы batch0.dat и batch_results.dat остаются пустыми.