Pueue es una herramienta de gestión de tareas de línea de comandos para la ejecución secuencial y paralela de tareas de larga duración.
En pocas palabras, es una herramienta que se convierte en un oeue de los comandos de shell. Además de eso, hay muchas características y abstracciones convenientes.
Dado que Pueue no está vinculado a ningún terminal, puede controlar sus tareas desde cualquier terminal en la misma máquina. La cola se procesará continuamente, incluso si ya no tiene sesiones SSH activas.
¿Pueue se considera complete de características? Se han agregado todas las características que se planificaron y solo se fusionarán mejoras menores, las fijaciones de errores y el trabajo de mantenimiento regular.
pueued corre en el fondo. No es necesario iniciar sesión.log y status si desea mostrar información sobre tareas en otro programa.wait para esperar tareas específicas, un grupo (o todo) para terminar.Pueue no está diseñado para ser un programador/ejecutor programable (scriptable) de servicio pesado.
El enfoque de pueue se encuentra en la interacción humana, es decir, se supone que debe ser utilizada por una persona real en algún tipo de sistema operativo. Ver la sección de objetivos de diseño
¡Debido a esto, el conjunto de características de pueue y pueued , así como su implementación y arquitectura, se ha mantenido simple por el diseño! A pesar de que se puede escribir hasta cierto punto, no se ha construido para esto y no hay apoyo oficial.
Definitivamente, existe la necesidad de un programador/ejecutor de tareas complejo con acceso avanzado de API y opciones de programación, pero este es el trabajo para otro proyecto, ya que no es para lo que se ha creado Pueue.
Hay algunas formas diferentes de instalar Pueue.
La forma preferida de instalar Pueue es usar el Administrador de paquetes de su sistema. Esto generalmente implementará archivos y terminaciones de servicio automáticamente.
Pueue ha sido empaquetado para bastantes distribuciones, consulte la tabla a la derecha para obtener más información.
Los binarios estáticamente vinculados (si es posible) para Linux (incluido el brazo), Mac OS y Windows se basan en cada versión.
Puede descargar los binarios para el cliente y el demonio ( pueue y pueued ) para cada versión en la página de lanzamiento.
Simplemente descargue ambos binarios para su sistema, cambie el nombre de pueue y pueued y colóquelos en su carpeta $PATH /Program.
Pueue está construido para la versión actual de óxido stable . Podría compilarse en versiones anteriores, pero esto no se prueba ni se admite oficialmente.
cargo install --locked pueue Esto instalará Pueue a $CARGO_HOME/bin/pueue (el valor predeterminado es ~/.cargo/bin/pueue )
Pueue está construido para la versión actual de óxido stable . Podría compilarse en versiones anteriores, pero esto no se prueba ni se admite oficialmente.
git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue Los binarios finales se ubicarán en target/release/{pueue,pueued} .
Revise el wiki para comenzar :).
También hay secciones detalladas para (con suerte) cada característica importante:
Además de eso, hay una opción de ayuda (-h) para todos los comandos.
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 está diseñado para ser una herramienta de ayuda conveniente para un solo usuario.
Se supone que debe funcionar independiente y sin ninguna integración externa. La idea es mantenerlo simple y prevenir el arrastre de características.
Además, ¿ Pueue se considera que se complete las características? Se han agregado todas las características que se planificaron y solo se fusionarán mejoras menores, las fijaciones de errores y el trabajo de mantenimiento regular.
Para el registro, las siguientes características no estaban incluidas, ya que están fuera del alcance:
pueue-lib , que proporciona las llamadas de API adecuadas para pueued . Sin embargo, tenga en cuenta que pueued todavía se supone que es un ejecutor de tareas minimalistas con la menor cantidad de lógica de programación posible.Parece haber la necesidad de algún proyecto que satisfaga todos estos puntos mencionados anteriormente, pero ese será el trabajo de otra herramienta. ¡Animo mucho a Pueue y me encantaría ver que los tenedores se conviertan en otros proyectos geniales!
SLURM es un sistema de gestión y programación de clúster rico y ampliamente utilizado. Si se encuentra en la necesidad de configuraciones complejas, como múltiples grupos de trabajadores o nodos distribuidos, Slurm será mucho más adecuado que Pueue.
Un procesador paralelo robusto y funcional con jóblo de texto y n-reetreces. GNU Parallel puede escalar a la paralelización de múltiples host y tiene un código complejo para tener una integración profunda en diferentes herramientas y capas, así como otras características avanzadas. Pueue se diferencia del paralelo de GNU al enfocarse más en la visibilidad en muchos comandos de larga duración diferentes y crear una ubicación central para que se almacenen los comandos, en lugar de el enfoque de GNU Parallel en fumar una tarea específica.
PM2 es una herramienta de gestión de procesos, cuyo enfoque está más en la gestión de tareas recurrentes y de larga duración. Parece ser bastante maduro y tiene una interfaz rica.
Un sistema de colas de trabajo muy liviano que no requieren configuración, mantenimiento, supervisión o procesos de larga duración.
Enlace al proyecto
Task Spooler es un sistema de lotes UNIX donde las tareas se ejecutaron una trasera una tras otra.
Enlaces a Ubuntu ManPage y una bifurcación en GitHub. El sitio web original parece estar inactivo.
¡Las solicitudes de funciones y las solicitudes de extracción son muy apreciadas y bienvenidas!
De todos modos, ¡háblame un poco sobre tus ideas antes de comenzar a piratear! Siempre es bueno saber en qué estás trabajando y podría tener algunas sugerencias o consejos :)
Dependiendo del tipo de contribución, debe ramificarse desde la rama main . Pueue es lo suficientemente maduro como para no necesitar una rama development y todos los cambios se recopilan allí antes de que se impulse un nuevo lanzamiento. Las hotías urgentes podrían implementarse en una rama separada, pero esto se decidirá caso por caso.
También está la Guía de arquitectura, que se supone que le brinda una breve descripción e introducción al proyecto.
Copyright © 2019 Arne Beer (@nukesor)