2

У меня есть сценарий Python, который автоматически заканчивается после количества выполнений X, в начале программы он устанавливает значение restart.txt равным 0, используя этот код.

restart = open("restart.txt", "w")
restart.write("0")
restart.close()

Затем в конце программы он сбрасывает файл в 1, чтобы он мог перезапуститься с помощью inotify , как это.

restart = open("restart.txt", "w")
restart.write("1")
restart.close()
exit //closes program

Я хочу сценарий inotify или что-то в этом роде, чтобы при изменении значения restart.txt на 1, чтобы снова открыть программу, перезапустите.

Как бы я поступил так с помощью сценария inotify или чего-то подобного?

1 ответ1

1

Следующий фрагмент кода bash может быть помещен в исполняемый скрипт bash:

     FORMAT=$(echo -e "\033[1;33m%w%f\033[0m written")
     while /usr/bin/inotifywait -qe close_write --format "$FORMAT" restart.txt
     do
             [ $(cat restart.txt) -eq 1] && /path/to/program/to/be/executed || echo "nothing to do"
     done

Вызов inotifywait часов файла restart.txt в режиме д uiet (то есть, подавляя некоторый вывод) для случая (-е) , который близок файл после открытия его писать. Однако inotifywait не может различить, был ли файл действительно записан, поэтому следующая строка реализует тест: если restart.txt содержит 1 , то выполнить некоторый файл, но если все еще содержит 0 то ничего не делать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .