Gibt es eine einfache Lösung (mithilfe von Shell Utils, über ein Util von den meisten Distributionen oder ein einfaches Python/... -Skript), um einen Prozess neu zu starten, wenn sich einige Dateien ändern?Neustart bei Dateiänderung unter Linux
Es wäre nett, einfach wie watch -cmd "./the_process -arg" deps/*
anrufen.
Update: Ein einfacher Shell-Skript zusammen mit den vorgeschlagenen inotify-Tool meiner Bedürfnisse passen (funktioniert für Befehle w/o Argumente) (schön!):
#!/bin/sh
while true; do
[email protected] &
PID=$!
inotifywait $1
kill $PID
done
Kann jemand erklären, was das "$!" Mach bitte (Konnte es nicht mit Google finden), Danke. – Lior
Es gibt die ID des zuvor gestarteten Prozesses zurück. – Christian
Wenn ein Dateisystem das 'noatime' Attribut nicht hat, dann wird Ziel Skript/Prozess in einer Endlosschleife wegen des' access' Ereignisses neu gestartet. Um das zu beheben, verwenden Sie stattdessen 'inotifywait -e modify $ 1', was nur auf Dateiänderungsereignisse reagiert. – chronos