Há um comando padrão batch
que faz mais ou menos o que você procura . Mais precisamente, batch
executa os trabalhos quando a carga do sistema não é muito alta, um de cada vez (para que não faça qualquer paralelização). O comando batch
faz parte do pacote at
.
echo 'command1 --foo=bar' | batch
echo 'command2 "$(wibble)"' | batch
at -q b -l # on many OSes, a slightly shorter synonym is: atq -q b
at -q b -r 1234 # Unschedule a pending task (atq gives the task ID)