Ich verwende eine Modifikation von Paul Biggars LaTeX-Build-System .
Der Kern dieses Systems ist nur ein Bash-Skript, das eine Endlosschleife ausführt. Die Frage ist, wie führe ich dieses Skript aus?
Im Moment starte ich es einfach, indem ich es im Terminal aufrufe:
$ ./build-it.sh report
Hierbei gibt es jedoch zwei Probleme:
- Es überfüllt das Terminal mit irrelevanten Ausgaben. Umleiten der Standardausgabe / Fehlerströme nach
/dev/null
hilft nicht Eigentlich, jede Linie Das im Skript ausgeführte wird ebenfalls in die Konsole geschrieben. Ist das überhaupt normal? - Nach einiger Zeit (etwa 30 Minuten, würde ich sagen) wird das Skript mit einem Fehler beendet ("Cputime-Limit überschritten").
Das erste Problem könnte wahrscheinlich mit gelöst werden nohup
und Schließen des Terminalfensters. Damit bleibt aber noch das zweite Problem. Ich bin auch der Meinung, dass dies keine "saubere" Lösung ist, da ich es vorziehen würde, das Skript normal im Hintergrund auszuführen und seine Standardausgabe zu verhindern (und im Übrigen nicht Fehlermeldungen).
Gibt es keinen geeigneten Weg, dies zu tun?
Antworten:
Wenn Sie das Skript als Antwort verwenden Hier , dann kannst du entferne das
set -x
Das ist für das Debuggen.Wenn Sie die umleiten
stderr
Stattdessen sollte die Debugging-Ausgabe des Skripts unterdrückt werden, es werden jedoch auch alle Fehlermeldungen unterdrückt.Bearbeiten:
Es gibt auch eine
ulimit -t 10
Zeile in diesem Skript. Das zu entfernen wird wahrscheinlich helfen.quelle
ulimit -t 10
im Das Skript muss bleiben - und es sollte sich nicht auf das Skript selbst auswirken. Andernfalls wird das Skript nach nur 10 Sekunden beendet.Versuchen:
zum Einstellen des Zeitlimits und
für mehr optionen von
ulimit
Bash eingebauter Befehlquelle
(ulimit -t unlimited; ./build-it.sh report)
aber das Skript stoppt nach einer Weile trotzdem.Sie können aufrufen
$ ./build-it.sh report & exit
Das wird das erste Problem lösen.Was das zweite betrifft, hat es möglicherweise mehr mit dem eigentlichen Skript zu tun.
quelle