Pausar processos com temporização com o comando sleep no Linux
Pausar processos com temporização com o comando sleep no Linux
O comando sleep, no Linux, é empregado para pausar um processo por um período de tempo especificado na forma de um ou mais argumentos passados a ele. Esse tempo pode ser especificado em segundos (padrão), minutos, horas ou dias.
Sintaxe
$ sleep numero [opções|unidades]...
Onde numero é um valor inteiro positivo, seguido por uma unidade de tempo opcional. Se a unidade de tempo não for especificada, será assumida como sendo tempo em segundos, por padrão.
As unidades aceitas pelo sleep são as seguintes:
- s: segundos
- m: minutos
- h: horas
- d: dias
É possível passar mais de um valor de tempo ao comando, e nesse caso os valores são somados automaticamente para resultar no valor da temporização final.
No lugar de numero também é possível usar a palavra inf, que significa pausa infinita.
As únicas opções disponíveis para o sleep são –help (para ajuda do comando) e –version (consultar versão).
Para que usamos exatamente o comando sleep?
O comando sleep pode ser usado em diversas tarefas em um sistema Linux, tais como:
- Sincronização de processos, permitindo inserir atrasos entre comandos ou processos, garantindo a execução sequencial correta.
- Economia de recursos ao usar scripts ou loops, sendo possível reduzir o uso de CPU ao aguardar antes de novas tentativas ou verificações.
- Automação de tarefas repetitivas em intervalos de tempo em scripts.
Entre outras.
Exemplos do comando sleep
Pausar por 10 segundos:
$ sleep 10
Pausar por 5 minutos:
$ sleep 5m
Pausar por 1 minuto e 30 segundos:
$ sleep 1m 30s
Pausar infinitamente:
$ sleep inf
Pausar por 300 milissegundos:
$ sleep 300e-3
Neste exemplo, 300e-3 significa 300 x 10-3, ou seja, 300/1000 = 300ms
Gerenciamento de tarefas em sequência
Podemos criar um script que execute tarefas em sequência, mas com intervalos temporais definidos:
#!/bin/bash
./processo1.sh
sleep 30 # Aguarda 30 segundos antes de iniciar o próximo processo.
./processo2.sh
Repetição com intervalo de tempo em loops
Também podemos usar o sleep para inserir pausas em scripts que realizem repetição de tarefas:
while true; do
echo "Verificando servidor..."
sleep 10 # Aguarda 10 segundos antes de repetir.
done
Conclusão
O comando sleep, como visto, é uma ferramenta simples, porém bastante útil no Linux, especialmente quando usado em scripts e para automação de processos.
Com ele podemos temporizar execuções, economizar recursos e sincronizar processos em sistemas e aplicações.
Escreva um comentário