Pueue adalah alat manajemen tugas baris perintah untuk eksekusi berurutan dan paralel dari tugas yang sudah berjalan lama.
Sederhananya, ini adalah alat yang memancarkan perintah shell. Selain itu, ada banyak fitur dan abstraksi yang nyaman.
Karena Pueue tidak terikat pada terminal apa pun, Anda dapat mengontrol tugas Anda dari terminal apa pun pada mesin yang sama. Antrian akan terus diproses, bahkan jika Anda tidak lagi memiliki sesi SSH aktif.
Pueue dianggap lengkap fitur? Semua fitur yang direncanakan telah ditambahkan dan hanya perbaikan kecil, perbaikan serangga dan pekerjaan pemeliharaan rutin yang akan digabungkan.
pueued berjalan di latar belakang. Tidak perlu masuk.log dan status jika Anda ingin menampilkan info tentang tugas di program lain.wait untuk menunggu tugas tertentu, grup (atau segalanya) selesai.Pueue tidak dirancang untuk menjadi penjadwal tugas/pelaksana tugas yang dapat diprogram (skrip).
Fokus pueue terletak pada interaksi manusia, yaitu itu seharusnya digunakan oleh orang sungguhan pada semacam OS. Lihat bagian Tujuan Desain
Karena ini, set fitur pueue dan pueued serta implementasi dan arsitekturnya telah tetap sederhana oleh desain! Meskipun dapat ditulis sampai taraf tertentu, itu belum dibangun untuk ini dan tidak ada dukungan resmi!
Pasti ada kebutuhan untuk penjadwal tugas/pelaksana tugas yang kompleks dengan opsi akses dan penjadwalan API canggih, tetapi ini adalah pekerjaan untuk proyek lain, karena ini bukan apa yang telah dibangun oleh Pueue.
Ada beberapa cara berbeda untuk menginstal Pueue.
Cara yang disukai untuk menginstal Pueue adalah dengan menggunakan manajer paket sistem Anda. Ini biasanya akan menggunakan file dan penyelesaian layanan secara otomatis.
Pueue telah dikemas untuk beberapa distribusi, periksa tabel di sebelah kanan untuk informasi lebih lanjut.
Binari yang terhubung secara statis (jika memungkinkan) untuk Linux (termasuk ARM), OS Mac dan Windows dibangun pada setiap rilis.
Anda dapat mengunduh binari untuk klien dan daemon ( pueue dan pueued ) untuk setiap rilis di halaman rilis.
Cukup unduh kedua binari untuk sistem Anda, ganti nama menjadi pueue dan pueued dan letakkan di folder $PATH /Program Anda.
Pueue dibangun untuk versi karat stable saat ini. Mungkin menyusun versi yang lebih lama, tetapi ini tidak diuji atau didukung secara resmi.
cargo install --locked pueue Ini akan menginstal pueue ke $CARGO_HOME/bin/pueue (default ~/.cargo/bin/pueue )
Pueue dibangun untuk versi karat stable saat ini. Mungkin menyusun versi yang lebih lama, tetapi ini tidak diuji atau didukung secara resmi.
git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue Binari terakhir akan berlokasi di target/release/{pueue,pueued} .
Periksa wiki untuk memulai :).
Ada juga bagian terperinci untuk (semoga) setiap fitur penting:
Selain itu, ada opsi bantuan (-h) untuk semua perintah.
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 dirancang untuk menjadi alat penolong yang nyaman untuk satu pengguna.
Seharusnya berfungsi sendiri dan tanpa integrasi eksternal. Idenya adalah agar tetap sederhana dan untuk mencegah creep fitur.
Juga, pueue dianggap lengkap fitur? Semua fitur yang direncanakan telah ditambahkan dan hanya perbaikan kecil, perbaikan serangga dan pekerjaan pemeliharaan rutin yang akan digabungkan.
Sebagai catatan, fitur -fitur berikut tidak termasuk karena tidak ada lingkup:
pueue-lib , yang menyediakan panggilan API yang tepat untuk pueued . Namun, perlu diingat bahwa pueued masih seharusnya menjadi pelaksana tugas minimalis dengan logika penjadwalan sesedikit mungkin.Tampaknya ada kebutuhan untuk beberapa proyek yang memenuhi semua poin yang disebutkan di atas, tetapi itu akan menjadi pekerjaan alat lain. Saya sangat mendorong pueue forking dan saya ingin melihat garpu tumbuh menjadi proyek keren lainnya!
Slurm adalah fitur yang kaya dan sistem manajemen cluster dan penjadwalan. Jika Anda mendapati diri Anda membutuhkan pengaturan kompleks seperti beberapa kumpulan pekerja atau node terdistribusi, Slurm akan jauh lebih cocok daripada Pueue.
Prosesor paralel yang kuat dan menonjol dengan toglog berbasis teks dan N-retries. GNU Parallel mampu skala untuk paralelisasi multi-host dan memiliki kode kompleks untuk memiliki integrasi yang mendalam di berbagai alat dan cangkang, serta fitur canggih lainnya. Pueue membedakan dirinya dari GNU paralel dengan lebih fokus pada visibilitas di berbagai perintah berjalan lama, dan menciptakan lokasi sentral untuk perintah yang akan disimpan, daripada fokus GNU paralel pada chunking tugas tertentu.
PM2 adalah alat manajemen proses, yang fokusnya lebih pada pengelolaan tugas yang berulang dan hidup lama. Tampaknya cukup dewasa dan memiliki antarmuka yang kaya.
Sistem antrian pekerjaan yang sangat ringan yang tidak memerlukan pengaturan, pemeliharaan, pengawasan, atau proses yang berjalan lama.
Tautan ke proyek
Task Spooler adalah sistem batch UNIX di mana tugas -tugas berjalan satu demi satu.
Tautan ke ubuntu manpage dan garpu di github. Situs web aslinya tampaknya sedang down.
Permintaan fitur dan permintaan tarik sangat dihargai dan diterima!
Bagaimanapun, tolong bicara sedikit tentang saya tentang ide -ide Anda sebelum Anda mulai meretas! Selalu menyenangkan mengetahui apa yang sedang Anda kerjakan dan saya mungkin memiliki beberapa saran atau tips :)
Bergantung pada jenis kontribusi Anda, Anda harus bercabang dari cabang main . Pueue cukup dewasa untuk tidak lagi membutuhkan cabang development dan semua perubahan dikumpulkan di sana sebelum rilis baru didorong. Perbaikan panas yang mendesak mungkin dikerahkan pada cabang terpisah, tetapi ini akan diputuskan berdasarkan kasus per kasus.
Ada juga panduan arsitektur, yang seharusnya memberi Anda gambaran singkat dan pengantar proyek.
Hak Cipta © 2019 Arne Beer (@nukesor)