Ich möchte, dass ein Skript in den Ruhezustand versetzt wird, es sei denn, eine bestimmte Datei wird geändert / gelöscht (oder eine Datei, die in einem bestimmten Verzeichnis erstellt wurde, oder ...). Kann dies auf elegante Weise erreicht werden? Die einfachste Sache, die mir in den Sinn kommt, ist eine Schleife, die einige Zeit ruht, bevor sie den Status erneut überprüft. Vielleicht gibt es aber auch eine elegantere Möglichkeit.
32
Es gibt eine API namens inotify für C-Programmierer.
Es gibt einige Tools, die es verwenden, z. B. Incron- und Inotify-Tools .
quelle
In der Tat gibt es: entr (1) führt beliebige Befehle aus, wenn sich Dateien ändern, und bietet auch eine Option zum automatischen Neuladen zum Neustarten von Anwendungsservern.
edit: einige beispiele
Neu erstellen, wenn sich die Quelldateien ändern
Starten Sie den Testserver und laden Sie ihn automatisch neu, wenn sich die Dateien ändern
Wenn Sie das Agument bereitstellen,
+/path/to/fifo
können Sie komplexere Skripte erstellen, indem Sieentr
den Namen jeder Datei schreiben, die sich in eine Named Pipe ändert. Im Folgenden werden Markdown-Dateien im aktuellen Verzeichnis beim Bearbeiten in HTML konvertiertquelle
entr
den Namen der Datei, die sich ebenfalls geändert hat, weiterzugeben?/_
(etwas analog zu$
_ in Perl) durch den Namen der ersten Datei ersetzt, die sich geändert hat