我有一个 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 文件,在问事件的安静模式(即抑制某些输出)(-e),即打开文件进行写入后关闭。 然而,通知等待无法区分文件是否真正被写入,因此下面一行实现了一个测试:如果 restart.txt 包含1
,则执行某些文件,但如果仍然包含,0
则不执行任何操作。