Pesquisa de site

Como executar um comando com limite de tempo (Timeout) no Linux


O Linux vem com uma abundância de comandos, cada comando único e usado em casos específicos. O objetivo do Linux é ajudá-lo a ser o mais rápido e eficiente possível. Uma propriedade de um comando Linux é o limite de tempo. Você pode definir um limite de tempo para qualquer comando que desejar. Se o tempo expirar, o comando para de ser executado.

Neste breve tutorial, você aprenderá dois métodos sobre como usar um limite de tempo em seus comandos.

Nesta página:
  1. Execute comandos do Linux usando a ferramenta timeout
  2. Execute comandos do Linux usando o programa Timelimit

Execute comandos do Linux usando a ferramenta timeout

O Linux possui um utilitário de linha de comando chamado timeout, que permite executar um comando com um limite de tempo.

Sua sintaxe é a seguinte.

timeout [OPTION] DURATION COMMAND [ARG]...

Para usar o comando, você especifica um valor de tempo limite (em segundos) com o comando que deseja executar. Por exemplo, para atingir o tempo limite de um comando ping após 5 segundos, você pode executar o seguinte comando.

timeout 5s ping google.com

Você não precisa especificar o(s) (s) após o número 5. O comando abaixo é o mesmo e ainda funcionará.

timeout 5 ping google.com

Outros sufixos incluem:

  • m representando minutos
  • h representando horas
  • d representando dias

Às vezes, os comandos podem continuar a ser executados mesmo após o tempo limite enviar o sinal inicial. Nesses casos, você pode usar a opção --kill-after.

Aqui está a sintaxe.

-k, --kill-after=DURATION

Você precisa especificar uma duração para que o timeout saiba depois de quanto tempo o sinal de interrupção deverá ser enviado.

Por exemplo, o comando mostrado será finalizado após 8 segundos.

timeout 8s tail -f /var/log/syslog

Execute comandos do Linux usando o programa Timelimit

O programa Timelimit executa um determinado comando e termina o processo após um tempo especificado usando um determinado sinal. Inicialmente, ele passa um sinal de alerta e, após um tempo limite, envia o sinal de interrupção.

Ao contrário da opção timeout, Timelimit tem mais opções como killsig, warnsig, killtime > e tempo de aviso.

Timelimit pode ser encontrado nos repositórios de sistemas baseados em Debian e para instalá-lo, use o seguinte comando.

sudo apt install timelimit

Para sistemas baseados em Arch, você pode instalá-lo usando programas auxiliares AUR, por exemplo, Pacaur Pacman e >Empacotador.

Pacman -S timelimit
pacaur -S timelimit
packer -S timelimit

Outras distribuições Linux, você pode baixar a fonte do limite de tempo e instalá-la manualmente.

Após a instalação, execute o seguinte comando e especifique a hora. Neste exemplo, você pode usar 10 segundos.

timelimit -t10 tail -f /var/log/pacman.log

Observe que se você não especificar argumentos, Timelimit usará os valores padrão: warntime=3600 segundos, warnsig=15, killtime =120 e killsig=9.

Conclusão

Neste guia, você aprendeu como executar comandos com limite de tempo no Linux. Em revisão, você pode usar o comando Timeout ou o utilitário Timelimit.

O comando Timeout é fácil de usar, mas o utilitário Timelimit é um pouco complicado, mas tem mais opções. Você pode escolher a opção mais adequada dependendo de suas necessidades.