Pueue는 장기 실행 작업의 순차적이고 병렬 실행을위한 명령 줄 작업 관리 도구입니다.
간단히 말해서, 그것은 쉘 명령의 aq ueue를 process 하는 도구입니다. 또한 편리한 기능과 추상화가 많이 있습니다.
Pueue는 터미널에 묶이지 않으므로 동일한 기계의 터미널에서 작업을 제어 할 수 있습니다. 더 이상 활성 SSH 세션이 없더라도 큐는 지속적으로 처리됩니다.
푸에이는 기능이 완성 된 것으로 간주됩니다. 계획된 모든 기능이 추가되었으며 약간의 개선, 버그 고정 및 정기 유지 보수 작업 만 합병됩니다.
pueued 데몬은 백그라운드에서 실행됩니다. 로그인 할 필요가 없습니다.log 및 status 대한 JSON 출력.wait 하위 명령.Pueue는 강력한 프로그램 가능 (스크립트 가능한) 작업 스케줄러/집행자로 설계 되지 않았습니다 .
pueue 의 초점은 인간의 상호 작용에 있습니다. 즉, 어떤 종류의 OS에서 실제 사람이 사용해야합니다. 디자인 목표 섹션을 참조하십시오
이로 인해 pueue 와 pueued 의 기능 세트와 구현 및 아키텍처는 디자인별로 간단하게 유지되었습니다! 어느 정도 스크립트를 작성할 수 있지만,이를 위해 구축되지 않았으며 공식적인 지원은 없습니다!
고급 API 액세스 및 스케줄링 옵션을 갖춘 복잡한 작업 스케줄러/집행자가 필요하지만 Pueue가 구축 된 것이 아니기 때문에 다른 프로젝트의 작업입니다.
Pueue를 설치하는 몇 가지 방법이 있습니다.
Pueue를 설치하는 선호하는 방법은 시스템 패키지 관리자를 사용하는 것입니다. 일반적으로 서비스 파일 및 완료를 자동으로 배포합니다.
Pueue는 상당히 몇 가지 배포판으로 포장되어 있으며 자세한 내용은 오른쪽 테이블을 확인하십시오.
Linux (ARM 포함) 용 바이너리 정적으로 연결된 (가능한 경우) Mac OS 및 Windows는 각 릴리스마다 구축됩니다.
릴리스 페이지의 각 릴리스에 대한 클라이언트와 데몬 ( pueue and pueued )의 바이너리를 다운로드 할 수 있습니다.
시스템 용 바이너리를 모두 다운로드하여 pueue 로 바꾸고 pueued 이름을 바꾸고 $PATH /Program 폴더에 배치하십시오.
Pueue는 현재 stable Rust 버전을 위해 제작되었습니다. 이전 버전에서 컴파일 할 수 있지만 테스트 또는 공식적으로 지원되지는 않습니다.
cargo install --locked pueue 이것은 $CARGO_HOME/bin/pueue 에 pueue를 설치합니다 (기본값은 ~/.cargo/bin/pueue ).
Pueue는 현재 stable Rust 버전을 위해 제작되었습니다. 이전 버전에서 컴파일 할 수 있지만 테스트 또는 공식적으로 지원되지는 않습니다.
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는 기능이 완성 된 것으로 간주됩니다. 계획된 모든 기능이 추가되었으며 약간의 개선, 버그 고정 및 정기 유지 보수 작업 만 합병됩니다.
레코드의 경우 다음 기능은 범위를 벗어 났기 때문에 포함되지 않았습니다.
pueued 대해 단호하다면 pueue-lib 라이브러리를 살펴보십시오. 그러나 pueued 여전히 가능한 한 적은 스케줄링 논리를 가진 최소한의 작업 집행자가되어야한다는 점을 명심하십시오.위에서 언급 한 이러한 모든 점을 충족시키는 일부 프로젝트가 필요하지만 다른 도구의 작업이 될 것 같습니다. 나는 Pueue를 포킹하는 것을 매우 격려하고 Forks가 다른 멋진 프로젝트로 성장하는 것을보고 싶습니다!
SLURM은 풍부하고 널리 사용되는 클러스터 관리 및 스케줄링 시스템 기능입니다. 여러 작업자 풀 또는 분산 노드와 같은 복잡한 설정이 필요하다면 Slurm은 Pueue보다 훨씬 더 적합합니다.
텍스트 기반 조 블로그 및 N- 레트리가있는 강력하고 특징적인 병렬 프로세서. GNU 병렬은 다중 호스트 병렬화로 확장 할 수 있으며 다른 도구와 쉘뿐만 아니라 다른 고급 기능에 깊은 통합을 갖도록 복잡한 코드를 보유하고 있습니다. Pueue 다양한 장기 실행 명령에 대한 가시성에 더 집중하여 GNU 병렬과 차별화되고 GNU 병렬의 특정 작업을 청킹하는 데 중점을두기보다는 명령을 저장할 중심 위치를 만듭니다.
PM2는 프로세스 관리 도구로, 반복 및 장기적인 작업 관리에 중점을 둡니다. 그것은 상당히 성숙하고 풍부한 인터페이스를 가지고 있습니다.
설정, 유지 보수, 감독 또는 장기적인 프로세스가 필요하지 않은 매우 가벼운 작업 대기열 시스템.
프로젝트 링크
작업 Spooler 는 작업이 다른 작업을 수행하는 Unix 배치 시스템입니다.
Ubuntu Manpage 및 Github의 포크 링크. 원래 웹 사이트는 다운 된 것 같습니다.
기능 요청 및 풀 요청은 대단히 감사하고 환영합니다!
어쨌든 해킹을 시작하기 전에 당신의 아이디어에 대해 조금 이야기 해주세요! 당신이 무엇을하고 있는지 아는 것이 항상 좋으며 몇 가지 제안이나 팁이있을 수 있습니다 :)
기부금의 유형에 따라 main 지점에서 지점을 지정해야합니다. Pueue는 더 이상 development 지점이 필요하지 않을 정도로 성숙하며 새로운 릴리스가 밀기 전에 모든 변경 사항이 수집됩니다. 긴급한 핫 픽스는 별도의 지점에 배치 될 수 있지만 이는 사례별로 결정됩니다.
건축 안내서도 있습니다.이 안내서는 프로젝트에 대한 간단한 개요와 소개를 제공해야합니다.
Copyright © 2019 Arne Beer (@nukesor)