Это уже было задано здесь, и я нашел решение для первой части моего вопроса. Итак, на данный момент у меня есть скрипт bash (script1), где я периодически оцениваю sha1sum определенного файла (output.dat) (скажем, каждые 1 секунду). Когда sha1sum_cur != sha1sum_prev
тогда я запускаю другой скрипт (script2) с некоторыми командами. Это означает, что файл был изменен.
Моя проблема в том, что output.dat довольно много МБ и требует много времени для записи. Поэтому я не хочу запускать script2 во время записи данных в него, но после завершения процесса записи данных в него. output.dat создается кодом Fortran, поэтому, скажем, каждые 1 час он удаляет предыдущие данные и записывает новые, но для этого требуется около 5 минут.
Два последних важных замечания: 1) Поскольку я отправляю свои задания в кластер, у меня нет разрешения на установку inotify-tools.
2) Я мог бы вызвать скрипт с помощью кода на Фортране, как только я close(output.txt)
с помощью CALL system(./script2)
но я бы предпочел этого не делать, поскольку он параллелен и не хочет снижать его эффективность.
Итак, вопрос в том, что я мог бы добавить к script1, чтобы он понимал, что процесс записи данных в output.dat завершен?