Gibt es eine Möglichkeit, ein Bash-Skript zu starten und dann andere Bash-Skripte in die Warteschlange zu stellen, um zu starten, wenn das erste fertig ist?
Zum Kontext. Ich führe eine Bildverarbeitung durch, bei der ich manuell mit einem Bild fummeln und es dann an ein Befehlszeilendienstprogramm senden muss, um fertig zu werden. Ich habe nur die Ressourcen, um 1 Instanzen des Dienstprogramms (ein riesiges neuronales Netz) auszuführen, aber ich kann weiterhin nach weiteren Bildern suchen und diese bearbeiten, um sie später zu füttern. Ich möchte in der Lage sein, Jobs in eine Warteschlange zu werfen, sobald ich mit dem manuellen Teil fertig bin.
&&
[wie in `touch / tmp / file && ls / tmp / file``] was Sie wollen? Oder möchten Sie einen laufenden Prozess außerhalb der Band beobachten und dann $ thing ausführen?Antworten:
Verwenden Sie GNU Parallel vielleicht mit
-j1
:Job anhängen:
Weitere Optionen (z. B. Ausführen, wenn eine neue Datei in einem Verzeichnis abgelegt wird) finden Sie unter: https://www.gnu.org/software/parallel/man.html#EXAMPLE:-GNU-Parallel-as-queue-system- Batch-Manager
quelle
Das ist vielleicht etwas komplizierter als Sie wollen, aber ich werde schießen.
Warum nicht einen Ordner mit den Bildern haben, die Sie bearbeitet haben, um sie zu verarbeiten, dann einen Cron-Job, der diesen Ordner etwa jede Minute auf Bilder überprüft und Ihr Finishing-Skript für jedes Element in diesem Ordner ausführt und dann das fertige Bild auf ' Ordner fertig?
quelle