PUEUE ist ein Tool für die Aufgabenverwaltung des Befehlszeilens für die sequentielle und parallele Ausführung langlebiger Aufgaben.
Einfach ausgedrückt, es ist ein Werkzeug, das die Befehle von Shell -Befehlen versichert . Darüber hinaus gibt es viele bequeme Funktionen und Abstraktionen.
Da Puue nicht an ein Terminal gebunden ist, können Sie Ihre Aufgaben von jedem Terminal auf derselben Maschine steuern. Die Warteschlange wird kontinuierlich verarbeitet, auch wenn Sie keine aktiven SSH -Sitzungen mehr haben.
PUEUE gilt als feature-complete?. Alle geplanten Funktionen wurden hinzugefügt, und nur geringfügige Verbesserungen, Bug-Fixes und regelmäßige Wartungsarbeiten werden zusammengeführt.
pueued Dämon läuft im Hintergrund. Keine Notwendigkeit, eingeloggt zu werden.log und status Wenn Sie Informationen zu Aufgaben in einem anderen Programm anzeigen möchten.wait , um auf bestimmte Aufgaben zu warten, eine Gruppe (oder alles), um fertig zu werden.PUEUE ist nicht als schwerwiegender programmierbarer (skriptierbarer) Task-Scheduler/Executor ausgelegt.
Der Fokus von pueue liegt auf der menschlichen Interaktion, dh es soll von einer echten Person in einer Art Betriebssystem verwendet werden. Siehe Abschnitt "Designziele"
Aus diesem Grund wurden die Funktionen von pueue und pueued sowie deren Implementierung und Architektur durch Design einfach gehalten! Obwohl es bis zu einem gewissen Grad geschrieben werden kann, wurde es nicht dafür gebaut und es gibt keine offizielle Unterstützung!
Es ist definitiv die Notwendigkeit eines komplexen Task -Schedulers/Executors mit erweiterten API -Zugriffs- und -planungsoptionen erforderlich. Dies ist jedoch der Auftrag für ein anderes Projekt, da dies nicht das ist, wofür PUEUE aufgebaut wurde.
Es gibt verschiedene Möglichkeiten, PUEUE zu installieren.
Die bevorzugte Möglichkeit zur Installation von Puue besteht darin, den Paketmanager Ihres Systems zu verwenden. Dadurch werden normalerweise automatische Servicedateien und Abschlüsse bereitgestellt.
PUEUE wurde für einige Verteilungen verpackt. Überprüfen Sie die Tabelle rechts, um weitere Informationen zu erhalten.
Statisch verknüpfte (wenn möglich) Binärdateien für Linux (inkl. ARM), Mac OS und Windows sind auf jeder Version aufgebaut.
Sie können die Binärdateien für den Client und den Daemon ( pueue und pueued ) für jede Version auf der Release -Seite herunterladen.
Laden Sie einfach beide Binärdateien für Ihr System herunter, benennen Sie sie in pueue und pueued um und platzieren Sie sie in Ihren $PATH /Programmordner.
PUEUE ist für die aktuelle stable Rostversion gebaut. Es könnte auf älteren Versionen kompiliert werden, aber dies wird nicht getestet oder offiziell unterstützt.
cargo install --locked pueue Dadurch wird PUEUE auf $CARGO_HOME/bin/pueue installiert (Standard ist ~/.cargo/bin/pueue )
PUEUE ist für die aktuelle stable Rostversion gebaut. Es könnte auf älteren Versionen kompiliert werden, aber dies wird nicht getestet oder offiziell unterstützt.
git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue Die endgültigen Binärdateien finden sich in target/release/{pueue,pueued} .
Schauen Sie sich das Wiki an, um loszulegen :).
Es gibt auch detaillierte Abschnitte für (hoffentlich) jedes wichtige Merkmal:
Darüber hinaus gibt es eine Hilfeoption (-h) für alle Befehle.
Interact with the Pueue daemon
Usage: pueue [OPTIONS] [COMMAND]
Commands:
add Enqueue a task for execution.
There're many different options when scheduling a task.
Check the individual option help texts for more information.
Furthermore, please remember that scheduled commands are executed via your system shell.
This means that the command needs proper shell escaping.
The safest way to preserve shell escaping is to surround your command with quotes, for example:
pueue add 'ls $HOME && echo "Some string"'
remove Remove tasks from the list. Running or paused tasks need to be killed first
switch Switches the queue position of two commands. Only works on queued and stashed commands
stash Stashed tasks won't be automatically started. You have to enqueue them or start them by hand
enqueue Enqueue stashed tasks. They'll be handled normally afterwards
start Resume operation of specific tasks or groups of tasks.
By default, this resumes the default group and all its tasks.
Can also be used force-start specific tasks.
restart Restart failed or successful task(s).
By default, identical tasks will be created and enqueued, but it's possible to restart in-place.
You can also edit a few properties, such as the path and the command, before restarting.
pause Either pause running tasks or specific groups of tasks.
By default, pauses the default group and all its tasks.
A paused queue (group) won't start any new tasks.
kill Kill specific running tasks or whole task groups..
Kills all tasks of the default group when no ids or a specific group are provided.
send Send something to a task. Useful for sending confirmations such as 'yn'
edit Edit the command, path or label of a stashed or queued task.
By default only the command is edited.
Multiple properties can be added in one go.
group Use this to add or remove groups.
By default, this will simply display all known groups.
status Display the current status of all tasks
format-status Accept a list or map of JSON pueue tasks via stdin and display it just like "pueue status".
A simple example might look like this:
pueue status --json | jq -c '.tasks' | pueue format-status
log Display the log output of finished tasks.
Only the last few lines will be shown by default.
If you want to follow the output of a task, please use the "follow" subcommand.
follow Follow the output of a currently running task. This command works like "tail -f"
wait Wait until tasks are finished.
By default, this will wait for all tasks in the default group to finish.
Note: This will also wait for all tasks that aren't somehow 'Done'.
Includes: [Paused, Stashed, Locked, Queued, ...]
clean Remove all finished tasks from the list
reset Kill all tasks, clean up afterwards and reset EVERYTHING!
shutdown Remotely shut down the daemon. Should only be used if the daemon isn't started by a service manager
parallel Set the amount of allowed parallel tasks
By default, adjusts the amount of the default group.
No tasks will be stopped, if this is lowered.
This limit is only considered when tasks are scheduled.
completions Generates shell completion files. This can be ignored during normal operations
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose... Verbose mode (-v, -vv, -vvv)
--color <COLOR> Colorize the output; auto enables color output when connected to a tty [default: auto] [possible values: auto, never, always]
-c, --config <CONFIG> If provided, Pueue only uses this config file. This path can also be set via the "PUEUE_CONFIG_PATH" environment variable. The commandline option overwrites the environment variable!
-p, --profile <PROFILE> The name of the profile that should be loaded from your config file
-h, --help Print help
-V, --version Print version
PUEUE ist als bequemes Helfer -Tool für einen einzelnen Benutzer ausgelegt.
Es soll eigenständig und ohne externe Integration funktionieren. Die Idee ist, es einfach zu halten und das Kriechen zu verhindern.
Außerdem gilt Pueue als Merkmal? Alle geplanten Funktionen wurden hinzugefügt, und nur geringfügige Verbesserungen, Bug-Fixes und regelmäßige Wartungsarbeiten werden zusammengeführt.
Für die Aufzeichnung waren die folgenden Funktionen nicht enthalten, da sie nicht mehr als Spielraum mehr sind:
pueue-lib -Bibliothek an, die ordnungsgemäße API-Forderungen für pueued liefert. Denken Sie jedoch daran, dass pueued immer noch ein minimalistischer Aufgabenausführer mit einer möglichst geringen Planungslogik wie möglich sein soll.Es scheint die Notwendigkeit eines Projekts zu sein, das all diese oben genannten Punkte erfüllt, aber das wird die Aufgabe eines anderen Tools sein. Ich ermutige sehr viel, PUEUE zu gib und würde gerne sehen, dass Forks zu anderen coolen Projekten wachsen!
Slurm ist ein reichhaltiges und weit verbreitetes Cluster -Management- und Planungssystem. Wenn Sie sich in der Notwendigkeit komplexer Setups wie mehreren Arbeiterpools oder verteilten Knoten befinden, ist Slurm viel besser geeignet als PUEUE.
Ein robuster und fähiger paralleler Prozessor mit textbasiertem Jungloglog und N-Retries. Die GNU-Parallel kann auf eine Mehrfach-Host-Parallelisierung skalieren, und verfügt über einen komplexen Code, um eine tiefe Integration über verschiedene Tools und Shells sowie andere erweiterte Funktionen hinweg aufweisen. Pueue unterscheidet sich von GNU parallel, indem sie sich mehr auf die Sichtbarkeit in vielen verschiedenen langlebigen Befehlen konzentriert und einen zentralen Ort für die gespeicherten Befehle erstellt, anstatt das Fokus von GNU Parallel auf das Knabieren einer bestimmten Aufgabe.
PM2 ist ein Prozessmanagement-Tool, dessen Fokus mehr auf dem Management wiederkehrender und langlebiger Aufgaben liegt. Es scheint ziemlich reif zu sein und hat eine reichhaltige Schnittstelle.
Ein sehr leichtes Job-Warteschlangensystem, für das keine Einrichtung, Wartung, Überwachung oder langjährige Prozesse erforderlich sind.
Link zum Projekt
Task Spooler ist ein Unix -Stapelsystem, bei dem die Aufgaben nacheinander spulen.
Links zu Ubuntu Manpage und eine Gabel auf GitHub. Die ursprüngliche Website scheint ausgefallen zu sein.
Feature -Anfragen und Zuganfragen werden sehr geschätzt und willkommen!
Wie auch immer, bitte sprechen Sie ein wenig mit mir über Ihre Ideen, bevor Sie mit dem Hacken beginnen! Es ist immer schön zu wissen, woran Sie arbeiten, und ich könnte ein paar Vorschläge oder Tipps haben :)
Abhängig vom Typ Ihres Beitrags sollten Sie vom main verzweigen. PUEUE ist ausgereift genug, um keinen development mehr zu benötigen, und alle Änderungen werden dort erfasst, bevor eine neue Veröffentlichung vorangetrieben wird. Dringende Hotfixes werden möglicherweise in einer separaten Filiale eingesetzt, dies wird jedoch von Fall zu Fall entschieden.
Es gibt auch den Architekturführer, der Ihnen einen kurzen Überblick und eine Einführung in das Projekt geben soll.
Copyright © 2019 Arne Beer (@Nukesor)