Como usar o comando timeout no Linux?

Como usar o comando timeout no Linux?
No sistema operacional Linux, alguns processos são executados continuamente e para matá-los após um certo período de tempo, um utilitário de linha de comando chamado "timeout" é usado.

O "tempo esgotado”Permite ao usuário executar um comando e depois encerrá -lo após o passar do tempo. Em outras palavras, "tempo esgotado”Facilita a execução de um comando por um certo período de tempo. O "tempo esgotado”O comando está incluído no kit de utilitário do GNU Core, que vem padrão com quase todos os sistemas Linux.

Na redação, passaremos pelos fundamentos deste comando com exemplos.

Sintaxe

O comando "Timeout" tem a seguinte sintaxe:

Timeout [Opção] [Duração] [Comando]

A duração pode estar em números inteiros flutuantes com sufixo de tempo:

s/sem sufixo (quando nenhuma unidade de sufixo é consertada, considere em segundo lugar)
m = minuto
h = hora
d = dia

Usando o comando "timeout"

Ping no seu sistema com um endereço IP, ele continuará indo até você encerrá -lo pressionando Ctrl+C.

Agora, defina um horário para encerrá -lo usando o comando "timeout". Por exemplo, vou definir o tempo para 7, o que significa que a execução do comando "ping" vai parar após 7 segundos.

Siga o comando abaixo para definir o prazo:

$ timeout 7 ping 192.168.18.213

Definindo tempo limite com outra unidade de tempo

Da mesma forma, podemos ping “Facebook.com ”também, usando:

$ ping no Facebook.com

Para parar o comando "ping" após 1 minuto, digite um comando abaixo do ritmo em um terminal:

$ timeout 1m ping facebook.com

Mostrando status de saída

Muitos programas enviaram um valor/código para o shell quando eles terminam.

Por exemplo, encerrar o seguinte processo antes de atingir seu limite de tempo que é de 6 segundos. Aperte Ctrl+C e verifique o status de saída digitando “Echo $”. Ele retornará "0" na saída:

$ timeout 6 ping facebook.com

Interromper um processo em execução sempre dará um código de saída "0".

Preservar o status

O status de preservação retorna um status de saída, mesmo se o encerramos com força usando Ctrl+C. O comando seria:

$ timeout-Preserve-status 2 ping facebook.com

E para verificar o código de saída, digite:

$ echo $?

Agora, o status de saída será 143.

Enviando sinais para o tempo limite

O comando "Timeout" envia um sinal para o processo para encerrar.

Para verificar os sinais disponíveis, use o comando "Kill":

$ kill -l

Uma lista de todos os sinais disponíveis será exibida.

O "-S" (-Signal) A opção permite que você defina um sinal para dar:

$ timeout -s

O comando "Timeout" usa o "sigterm" para interromper um processo, mas muitos processos ignoram o sinal "sigterm". Para encerrar com força um processo usando o sinal "sigkill", não pode ser ignorado por qualquer processo.

Enviando Sigkill para o comando ping após 2 segundos, digite:

$ sudo timeout -s sigkill ping facebook.com

Você também pode enviar sinais usando um número de sinal em vez do nome de um sinal:

$ sudo timeout -s 9 ping 192.168.18.213

Enviando sinais de morte

O "-K" a opção está sendo usada para encerrar o processo.

No exemplo seguinte, se a conexão não se estabelecer em 2 minutos, ele matará o comando de tempo limite após 3 segundos:

$ sudo timeout -k 3 2m ping facebook.com

No meu caso, o comando de tempo limite será executado por 2 minutos e não será encerrado. Portanto, não matará mesmo depois de 3 segundos.

Conseguindo ajuda

O Linux tem um recurso muito bom que fornece ajuda para cada comando que usamos. Usando "ajuda" Com um nome de comando, ele fornecerá as informações de ajuda em detalhes:

$ Timeout -Help

Versão de verificação

Para verificar a versão do comando timeout, digite:

$ timeout -versão

Conclusão

No sistema operacional Linux, o comando "Timeout" é um utilitário de linha de comando usado para encerrar um processo em execução após um período definido. É usado para os processos que correm continuamente. Além disso, o status de saída dos processos em execução também pode ser acessado usando o comando "timeout". Discutimos comandos de tempo limite através de diferentes exemplos com várias opções.