'at' comando comportamento pretendido? Lançar cada comando em vez de agendar

7

Estou tentando agendar a execução de alguns programas. Estou usando este comando:

./tests.o | at 15:00&

Se eu entendi corretamente, o comportamento pretendido era atrasar a execução até as 15:00. No entanto, se eu executar top assim que eu iniciar o comando acima, eu já poderei ver o tempo de CPU sendo consumido.

Como preciso iniciar vários testes em recursos compartilhados, estou pensando em como usar corretamente "at"?

O que estou fazendo de errado?

    
por Mick Hardins 08.09.2018 / 15:30

1 resposta

10

at lê os comandos da entrada padrão. O que você está fazendo é executar ./tests.o e alimentar sua (s) saída (s) seqüência (s) como comando (s) para at para agendar. Além disso, não há necessidade do & , já que at retorna imediatamente.

O que você precisa é:

echo ./tests.o | at 15:00

ou:

at 15:00 <<< ./tests.o

Você precisará usar aspas se quiser que o comando agendado use o redirecionamento ou outras funções do shell, por exemplo:

at 15:00 <<< './tests.o > tests.log'
    
por 08.09.2018 / 16:20