Ein Prozess in einem Bash-Skript, das ich entwickle, schlägt häufig leise fehl (es wird weiterhin ohne Fehlercode ausgeführt, aber der Fehler wird in die Protokolldatei geschrieben).
Sobald der Fehler in der Protokolldatei auftritt, möchte ich den Prozess neu starten (und auch die Überwachung der Protokolldatei fortsetzen). Wenn der Prozess abgeschlossen ist, soll der Rest des Skripts ausgeführt werden.
Ich habe viel gesucht und viele Dinge mit Grep und Tail ausprobiert, und wenn, während, Pipes usw., aber ich kann es einfach nicht zum Laufen bringen.
Was ist der richtige Weg?
Folgendes möchte ich grundsätzlich in einer imaginären Sprache (nicht bash / shell):
:START
RUN error_prone_process
IF "Error text" ~/logfile.txt
KILL error_prone_process
GOTO START
quelle
Wenn Sie Zugriff auf die Systemkonfiguration haben, ziehen Sie die Verwendung von monit in Betracht . Um Protokolle zu überwachen, muss ich ein Skript ausführen, das das Protokoll überprüft und OK oder ERROR in eine andere Datei schreibt. Ich überprüfe dann diese Datei auf Dateilänge und Frische.
quelle