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
아무 작업도 수행하지 않습니다.