Dado um PC comum, gostaríamos de usá-lo para executar algumas tarefas em segundo plano o tempo todo.
Basicamente, gostaríamos de ter comandos como:
add-task *insert command here*
list-tasks
remove-task(s)
As tarefas adicionadas devem ser simplesmente colocadas em uma fila e executadas uma após a outra em segundo plano (continuando sendo executadas após o logout do shell).
Existe algum script / programa simples que faça isso?
process
process-management
scheduling
dagnelies
fonte
fonte
batch
comando "não faz paralelização". Geralmente, existe um atraso padrão de 60 segundos entre iniciar um trabalho e iniciar o seguinte; no entanto, não há nada para fazer o próximo trabalho aguardar o término do primeiro -atd
iniciará os trabalhos da fila em lotes assim que o valor definido pela-b
opção tiver decorrido (consulte aatd
página de manual).Outra solução é usar
lpd
e criar um "driver de impressão" personalizado que execute seus trabalhos. Um amigo me ajudou a resolver isso quando tive um pedido semelhante. Crie um script como este e coloque-o em/tmp/batch.sh
:Então corra:
Isso inicia uma fila e você pode criar mais usando outros nomes em vez do lote1. Adicione um trabalho com:
Gerenciar trabalhos com
lpq
,lprm
elpstat
. Se você deseja mais flexibilidade ao passar argumentos para seus trabalhos, pode tornar o script batch.sh mais sofisticado.(Tentei
batch
antes de seguir esse caminho, mas ele não funciona como uma fila no OSX ou eu estava usando errado.)fonte
batch
.Existem muitos sistemas de filas, mas eles geralmente são muito especializados.
Você pode olhar para o
at
planejador. É decron
certa forma, mas é mais parecido com uma fila para trabalhos únicos do que para trabalhos repetidos. Ele pode "agendar" coisas com base em critérios diferentes do tempo, como carga do sistema ou sequência de tarefas.Sua distribuição favorita quase certamente terá pacotes para ela.
fonte
Percebo que essa pergunta tem vários anos, portanto pode não ajudar o pôster original, mas pode ajudar outra pessoa.
Primeiro: "spooler de tarefas" é a resposta. É muito poderoso e pelo menos o Fedora o possui.
Mas muitos dos servidores que uso, não consigo instalar pacotes arbitrários sem muito aborrecimento, por isso preciso de algo que seja idealmente puro bash (ou perl, ou tal).
Depois de lutar com isso por um tempo, criei uma implementação pura do bash que parece funcionar bem até agora. Você pode encontrá-lo em https://github.com/sitaramc/bq .
É apenas um script bash, portanto a instalação é trivial. No entanto, isso afeta seus segundo e terceiro requisitos (mas também deve ser trivial implementá-los).
O script é comentado liberalmente e você poderá revisá-lo em alguns minutos, se desejar.
fonte