Bei einem Standard-PC möchten wir damit rund um die Uhr einige Aufgaben im Hintergrund ausführen.
Grundsätzlich möchten wir Befehle wie:
add-task *insert command here*
list-tasks
remove-task(s)
Die hinzugefügten Aufgaben sollten einfach in eine Warteschlange gestellt und nacheinander im Hintergrund ausgeführt werden (nach dem Abmelden der Shell weiter ausgeführt).
Gibt es ein einfaches Skript / Programm, das dies tut?
process
process-management
scheduling
dagnelies
quelle
quelle
batch
Befehl "keine Parallelisierung durchführt". Normalerweise gibt es eine Standardverzögerung von 60 Sekunden zwischen dem Starten eines Jobs und dem Starten des nächsten. Es gibt jedoch nichts, was den nächsten Job warten lässt, bis der erste abgeschlossen ist.atd
Sobald der durch die-b
Option festgelegte Wert abgelaufen ist, werden Jobs aus der Stapelwarteschlange gestartet (sieheatd
Manpage).Eine andere Lösung besteht darin
lpd
, einen benutzerdefinierten "Druckertreiber" zu verwenden und zu erstellen, mit dem Ihre Jobs ausgeführt werden. Ein Freund half mir dabei, das herauszufinden, als ich eine ähnliche Anfrage hatte. Erstellen Sie ein Skript wie dieses und fügen Sie es ein/tmp/batch.sh
:Dann renne:
Dadurch wird eine Warteschlange gestartet, und Sie können mehr erstellen, indem Sie andere Namen anstelle von batch1 verwenden. Fügen Sie einen Job hinzu mit:
Verwalten der Aufträge mit
lpq
,lprm
undlpstat
. Wenn Sie mehr Flexibilität bei der Übergabe von Argumenten an Ihre Jobs wünschen, können Sie das Skript batch.sh schicker machen.(Ich habe es versucht,
batch
bevor ich diesen Weg eingeschlagen habe, aber entweder funktioniert es unter OSX nicht als Warteschlange, oder ich habe es falsch verwendet.)quelle
batch
.Es gibt viele Warteschlangensysteme, die jedoch häufig sehr spezialisiert sind.
Sie könnten in den
at
Scheduler schauen . Es istcron
in gewisser Weise ähnlich, aber es ist eher wie eine Warteschlange für einmalige Jobs als für Wiederholungsjobs eingerichtet. Es kann Dinge nach anderen Kriterien als der Zeit "planen", wie z. B. Systemlast oder Abfolge von Jobs.Ihre Lieblingsdistribution wird mit ziemlicher Sicherheit Pakete dafür haben.
quelle
Ich stelle fest, dass diese Frage mehrere Jahre alt ist, daher hilft sie möglicherweise nicht dem Originalplakat, aber möglicherweise jemand anderem.
Erstens: "Task Spooler" ist die Antwort. Es ist ziemlich mächtig und Fedora hat es zumindest.
Aber viele der Server, die ich benutze, können keine beliebigen Pakete ohne großen Aufwand installieren, daher brauche ich etwas, das idealerweise reine Bash (oder Perl oder so) ist.
Nachdem ich eine Weile damit zu kämpfen hatte, kam ich auf eine reine Bash-Implementierung, die bisher gut zu funktionieren scheint. Sie finden es unter https://github.com/sitaramc/bq .
Es ist nur ein Bash-Skript, daher ist die Installation trivial. Es übertrifft jedoch Ihre zweite und dritte Anforderung (aber es sollte trivial sein, diese auch zu implementieren).
Das Skript ist großzügig kommentiert und Sie sollten es in wenigen Minuten überprüfen können, wenn Sie möchten.
quelle