У меня есть скрипт Python, который автоматически завершается после X запусков, в начале программы он устанавливает значениеперезапуск.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
сценарий или что-то в этом роде, когда значениеперезапуск.txtизменится на 1, чтобы снова открыть программу, перезапустите.
Как бы я это сделал с помощью inotify
сценария или чего-то подобного?
решение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 (т.е. подавление некоторого вывода) для события (-е) которыйзакройте файл после того, как открыли его для записи. Однако,inotifyожидатьневозможно определить, была ли действительно произведена запись в файл, поэтому следующая строка реализует проверку: если restart.txt содержит 1
, то выполнить какой-либо файл, но если все еще содержит , 0
то ничего не делать.