파일이 변경될 때마다 파일을 실행하고 싶습니다.

파일이 변경될 때마다 파일을 실행하고 싶습니다.

X 실행 횟수 후에 자동으로 종료되는 Python 스크립트가 있습니다. 프로그램 시작 시 값을 설정합니다.재시작.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나는 스크립트나 그와 유사한 것을 원합니다 .재시작.txt1로 변경되고, 프로그램을 다시 열려면 다시 시작하세요.

스크립트나 이와 유사한 것으로 이를 수행하려면 어떻게 해야 합니까 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아무 작업도 수행하지 않습니다.

관련 정보