Tentei usar o comando "at" para parar e iniciar o servidor em um determinado momento, mas por algum motivo o script foi executado imediatamente. Eu tentei diferentes maneiras de fazer isso, mas sempre funcionava. O que estou fazendo errado? Tentei fazer assim:
./stop | at 03:52 092421
e assim:
./start | at 04:00 tommorow
Você está invocando
./stop
(ou./start
). Não éat
quem executa o script imediatamente. É você.Por
./stop | at …
você correr./stop
eat
simultaneamente. É assim que a tubulação (|
) funciona em um shell. A saída de./stop
vai paraat
. Isso não é o que você quer.at
espera um comando (que você deseja executar mais tarde) como uma string em sua entrada padrão. Em vez da saída de./stop
você deseja passar uma string que diz./stop
. Uma maneira básica de canalizar uma string é paraecho
ela:Isso será executado
echo
eat
. A última ferramenta terá a saída da ferramenta anterior. A saída será literalmente./stop
. Isso é o que você quer.