Richtige Methode zur Verwendung von nohup im Stapelverarbeitungsprozess


2

Was wäre die beste Methode, um nohup in einem Batch-Skript mit mehreren Aufrufen innerhalb des Skripts zu verwenden?

Zum Beispiel habe ich ein Skript namens filebuilder.sh und es enthält so etwas wie:

/usr/bin/python buildFile.py fileA
/usr/bin/python buildFile.py fileB
/usr/bin/python buildFile.py fileC

Ich möchte sicherstellen, dass mein Skript auch dann ausgeführt wird, wenn meine SSH-Sitzung beendet wird. Soll ich das Skript einfach so aufrufen:

nohup filebuilder.sh

oder setze nohup vor jeden Eintrag in der Datei wie:

nohup /usr/bin/python buildFile.py fileA
nohup /usr/bin/python buildFile.py fileB
nohup /usr/bin/python buildFile.py fileC 

oder beides? Wenn ich es nur im Skript platziere, ist es möglich, dass einer der Python-Aufrufe bei einem Beendigungssignal immer noch fehlschlägt? Was ist die beste Vorgehensweise und welche Lösung wird meine Anforderungen erfüllen? Gibt es eine bessere Alternative?

Antworten:


0

Putten nohup In jeder Zeile steht nicht die Antwort. Wenn Sie dies tun und die Sitzung beendet wird, wird das derzeit ausgeführte Programm vollständig ausgeführt, das Skript wird jedoch ohne Beendigung beendet. nohup filebuilder.sh wird funktionieren, aber dann müssen Sie daran denken, es jedes Mal zu tun. Einige Lösungen:

1. Schreiben Sie filebuilder.sh sagen

    exec nohup name_of_the_real_filebuilder.sh

2. Put

    trap "" 1

am Anfang Ihres Skripts. (1 ist der numerische Wert des "Auflegen" -Signals.)


Danke für die Antwort. Ist das eine beides Situation oder eine entweder oder Situation für Ihre Lösungen?
Dave Johnshon

@ Dave: Entweder (1) oder (2).
Scott
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.