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.

Sobre Fábio dos Reis (1226 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*