我有一個 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 文件,在q事件的 uiet 模式(即抑制某些輸出)(-e)這是開啟檔案進行寫入後關閉文件。然而,inotify等待無法區分文件是否真的被寫入,因此下面的行實現了一個測試:如果 restart.txt 包含1
,則執行某個文件,但如果仍然包含0
則不執行任何操作。