Pueue เป็นเครื่องมือการจัดการงานบรรทัดคำสั่งสำหรับการดำเนินการตามลำดับและขนานของงานที่ดำเนินการมานาน
พูดง่ายๆก็คือเครื่องมือที่ p rocesses aq ueue ของคำสั่งเชลล์ ยิ่งไปกว่านั้นยังมีคุณสมบัติที่สะดวกและนามธรรมมากมาย
เนื่องจาก Pueue ไม่ผูกพันกับเทอร์มินัลใด ๆ คุณสามารถควบคุมงานของคุณจากเทอร์มินัลใด ๆ ในเครื่องเดียวกัน คิวจะได้รับการประมวลผลอย่างต่อเนื่องแม้ว่าคุณจะไม่มีเซสชัน SSH ที่ใช้งานอยู่อีกต่อไป
Pueue ถือเป็นคุณสมบัติที่สมบูรณ์? คุณสมบัติทั้งหมดที่วางแผนไว้ได้รับการเพิ่มและการปรับปรุงเล็กน้อยเพียงเล็กน้อยการแก้ไขข้อผิดพลาดและงานบำรุงรักษาปกติจะถูกรวมเข้าด้วยกัน
pueued ทำงานในพื้นหลัง ไม่จำเป็นต้องเข้าสู่ระบบlog และ status หากคุณต้องการแสดงข้อมูลเกี่ยวกับงานในโปรแกรมอื่นwait เพื่อรองานเฉพาะกลุ่ม (หรือทุกอย่าง) ให้เสร็จสิ้นPueue ไม่ได้ รับการออกแบบให้เป็นโปรแกรมควบคุมงาน/ผู้ดำเนินการที่ใช้งานได้อย่างหนัก
จุดสนใจของ pueue นั้นอยู่ที่การมีปฏิสัมพันธ์ของมนุษย์เช่นควรใช้โดยคนจริงในระบบปฏิบัติการบางประเภท ดูส่วนเป้าหมายการออกแบบ
ด้วยเหตุนี้ชุดคุณสมบัติของ pueue และ pueued รวมถึงการใช้งานและสถาปัตยกรรมของพวกเขาได้รับการเก็บรักษาไว้อย่างง่ายโดยการออกแบบ! แม้ว่ามันจะสามารถสคริปต์ในระดับหนึ่ง แต่ก็ไม่ได้ถูกสร้างขึ้นมาเพื่อสิ่งนี้และไม่มีการสนับสนุนอย่างเป็นทางการ!
มีความจำเป็นอย่างยิ่งสำหรับตัวกำหนดตารางเวลางาน/ผู้ดำเนินการที่ซับซ้อนด้วยตัวเลือกการเข้าถึง API ขั้นสูงและตัวเลือกการกำหนดเวลา แต่นี่เป็นงานสำหรับโครงการอื่นเนื่องจากนี่ไม่ใช่สิ่งที่ Pueue ถูกสร้างขึ้น
มีวิธีการติดตั้ง pueue ที่แตกต่างกันสองสามวิธี
วิธีที่ต้องการในการติดตั้ง pueue คือการใช้ตัวจัดการแพ็คเกจของระบบของคุณ โดยปกติจะปรับใช้ไฟล์บริการและความสำเร็จโดยอัตโนมัติ
Pueue ได้รับการบรรจุสำหรับการแจกแจงค่อนข้างน้อยตรวจสอบตารางทางด้านขวาสำหรับข้อมูลเพิ่มเติม
ไบนารีที่เชื่อมโยงกันแบบคงที่ (ถ้าเป็นไปได้) สำหรับ Linux (รวมแขน), Mac OS และ Windows ถูกสร้างขึ้นในแต่ละรีลีส
คุณสามารถดาวน์โหลดไบนารีสำหรับลูกค้าและ Daemon ( pueue และ pueued ) สำหรับแต่ละรุ่นในหน้ารุ่น
เพียงดาวน์โหลดไบนารีทั้งสองสำหรับระบบของคุณเปลี่ยนชื่อเป็น pueue และ pueued และวางไว้ในโฟลเดอร์ $PATH /program ของคุณ
Pueue ถูกสร้างขึ้นสำหรับเวอร์ชันสนิม stable ในปัจจุบัน มันอาจคอมไพล์ในเวอร์ชันเก่า แต่สิ่งนี้ไม่ได้ทดสอบหรือสนับสนุนอย่างเป็นทางการ
cargo install --locked pueue สิ่งนี้จะติดตั้ง pueue เป็น $CARGO_HOME/bin/pueue (ค่าเริ่มต้นคือ ~/.cargo/bin/pueue )
Pueue ถูกสร้างขึ้นสำหรับเวอร์ชันสนิม stable ในปัจจุบัน มันอาจคอมไพล์ในเวอร์ชันเก่า แต่สิ่งนี้ไม่ได้ทดสอบหรือสนับสนุนอย่างเป็นทางการ
git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue ไบนารีสุดท้ายจะอยู่ใน target/release/{pueue,pueued}
ตรวจสอบวิกิเพื่อเริ่มต้น :)
นอกจากนี้ยังมีรายละเอียดส่วนหนึ่งสำหรับ (หวังว่า) ทุกคุณสมบัติที่สำคัญ:
ยิ่งไปกว่านั้นมีตัวเลือกวิธีใช้ (-H) สำหรับคำสั่งทั้งหมด
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 ได้รับการออกแบบให้เป็นเครื่องมือผู้ช่วยที่สะดวกสำหรับผู้ใช้รายเดียว
มันควรจะทำงานแบบสแตนด์อโลนและไม่มีการรวมภายนอกใด ๆ แนวคิดคือทำให้มันง่ายและเพื่อป้องกันการคืบคลาน
นอกจากนี้ Pueue ยังถือว่าเป็นคุณสมบัติที่สมบูรณ์หรือไม่ คุณสมบัติทั้งหมดที่วางแผนไว้ได้รับการเพิ่มและการปรับปรุงเล็กน้อยเพียงเล็กน้อยการแก้ไขข้อผิดพลาดและงานบำรุงรักษาปกติจะถูกรวมเข้าด้วยกัน
สำหรับบันทึกคุณสมบัติต่อไปนี้ไม่ได้รวมอยู่ในขอบเขตที่ไม่มีขอบเขต:
pueue-lib ซึ่งให้การเรียก API ที่เหมาะสมสำหรับ pueued อย่างไรก็ตามโปรดทราบว่า pueued ยังคงควรเป็นผู้ดำเนินการงานที่เรียบง่ายโดยมีตรรกะการกำหนดเวลาน้อยที่สุดเท่าที่จะทำได้ดูเหมือนว่าจะมีความต้องการสำหรับโครงการบางโครงการที่ตอบสนองจุดทั้งหมดที่กล่าวถึงข้างต้น แต่นั่นจะเป็นหน้าที่ของเครื่องมืออื่น ฉันขอแนะนำให้ Forking Pueue มากและฉันชอบที่จะเห็นส้อมเติบโตเป็นโครงการเจ๋ง ๆ อื่น ๆ !
Slurm เป็นคุณลักษณะที่อุดมไปด้วยการจัดการคลัสเตอร์และระบบการจัดตารางเวลาที่ใช้กันอย่างแพร่หลาย หากคุณพบว่าตัวเองต้องการการตั้งค่าที่ซับซ้อนเช่นกลุ่มคนงานหลายคนหรือโหนดกระจาย Slurm จะเหมาะกว่า Pueue มาก
โปรเซสเซอร์คู่ขนานที่แข็งแกร่งและมีคุณสมบัติพร้อม JOBLOG และ N-RETRIES GNU Parallel สามารถปรับขนาดให้เป็นแบบขนานหลายโฮสต์และมีรหัสที่ซับซ้อนเพื่อให้มีการรวมเข้ากับเครื่องมือและเปลือกหอยต่าง ๆ รวมถึงคุณสมบัติขั้นสูงอื่น ๆ Pueue สร้างความแตกต่างจาก GNU ขนานกันโดยมุ่งเน้นไปที่การมองเห็นมากขึ้นในคำสั่งที่ใช้งานยาวนานหลายคำและการสร้างตำแหน่งกลางสำหรับคำสั่งที่จะจัดเก็บแทนที่จะมุ่งเน้นไปที่ GNU Parallel ในการใช้งานที่เฉพาะเจาะจง
PM2 เป็นเครื่องมือในการจัดการกระบวนการซึ่งมุ่งเน้นไปที่การจัดการงานที่เกิดขึ้นและมีชีวิตที่ยาวนาน ดูเหมือนว่าจะเป็นผู้ใหญ่และมีอินเทอร์เฟซที่หลากหลาย
ระบบคิวงานที่มีน้ำหนักเบามากซึ่งไม่จำเป็นต้องมีการตั้งค่าการบำรุงรักษาการกำกับดูแลหรือกระบวนการที่ดำเนินมายาวนาน
ลิงก์ไปยังโครงการ
Task Spooler เป็นระบบแบตช์ Unix ที่งานสพูลทำงานหนึ่งหลังจากอื่น ๆ
ลิงค์ไปยัง Ubuntu Manpage และส้อมบน GitHub เว็บไซต์ดั้งเดิมดูเหมือนจะลง
คำขอคุณสมบัติและคำขอดึงได้รับการชื่นชมและต้อนรับอย่างมาก!
อย่างไรก็ตามโปรดพูดคุยกับฉันเล็กน้อยเกี่ยวกับความคิดของคุณก่อนที่คุณจะเริ่มแฮ็ค! เป็นเรื่องดีเสมอที่รู้ว่าคุณกำลังทำอะไรอยู่และฉันอาจมีคำแนะนำหรือเคล็ดลับเล็กน้อย :)
ขึ้นอยู่กับประเภทของการมีส่วนร่วมของคุณคุณควรสาขาจากสาขา main Pueue เติบโตขึ้นพอที่จะไม่ต้องการสาขา development อีกต่อไปและการเปลี่ยนแปลงทั้งหมดจะถูกรวบรวมไว้ก่อนที่จะมีการผลักดันใหม่ โปรแกรมแก้ไขปัญหาเร่งด่วนอาจถูกนำไปใช้ในสาขาแยกต่างหาก แต่จะมีการตัดสินใจเป็นกรณี ๆ ไป
นอกจากนี้ยังมีคู่มือสถาปัตยกรรมซึ่งควรจะให้ภาพรวมสั้น ๆ และแนะนำโครงการ
ลิขสิทธิ์© 2019 Arne Beer (@nukesor)