私は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ファイルを監視します。qイベントのuietモード(つまり、一部の出力を抑制する)(-e)は書き込みのために開いたファイルを閉じる。 しかし、inotifywaitファイルが実際に書き込まれたかどうかを区別できないため、次の行でテストを実装します。restart.txt に が含まれている場合は1
ファイルを実行しますが、まだ が含まれている場合は0
何もしません。