Para administradores de sistema responsáveis ​​pelo controle de servidores Linux, o gerenciamento de recursos é uma tarefa importante. Às vezes, os comandos do Linux ocupam uma grande quantidade de recursos do sistema e precisam ser interrompidos.

Felizmente, você pode limitar o tempo de execução de seus comandos usando utilitários como prazo. Neste artigo, discutiremos por que você deve adicionar limites de tempo aos seus comandos e como adicionar uma restrição de tempo usando comandos como timelimit e timeout.

Por que limitar o tempo de execução de um comando?

Existem vários motivos pelos quais você pode ter que executar seus comandos com um limite de tempo. Primeiro, você pode estar executando um computador ou servidor mais antigo e não quer que seu sistema desperdice seus recursos em processamento indesejado.

Em segundo lugar, tarefas com limite de tempo, como transferências de arquivos, terminam após um determinado período, mas seus processos não param imediatamente. Para impedir que o programa consuma tempo de CPU e memória adicionais, você pode adicionar um limite que interromperá o processo assim que a transferência for concluída.

Adicionar limite usando o comando timeout

O comando timeout é a primeira escolha de muitos usuários Linux para adicionar uma restrição de tempo a seus comandos. Uma vez que esta ferramenta faz parte do GNU Core Utilities pacote, ele vem pré-instalado em quase todas as distribuições do Linux.

A sintaxe básica do comando timeout é:

comando de limite de tempo limite

...Onde limite é a quantidade de tempo que o comando deve ser executado e comando é o comando do Linux que você deseja executar com um limite de tempo.

Por exemplo, se você deseja obter detalhes do processo usando o principal comando por 10 segundos:

tempo limite 10s top

O comando top não tem fim e você deve encerrá-lo manualmente usando Ctrl + C. O comando mencionado será executado no início por 10 segundos e, uma vez que o cronômetro termine, o tempo limite irá parar sua execução. Observe que o tempo limite leva segundos como unidade de tempo padrão, o que significa 10 e 10s são os mesmos.

Você também pode usar m, h, e d para minutos, horas, e dias respectivamente.

Enviar sinais de interrupção manualmente com tempo limite

Por padrão, o comando timeout envia SIGTERM como o sinal de eliminação. SIGTERM significa Terminar Sinal, que encerra o processo imediatamente.

Você também pode enviar outros sinais usando o -s bandeira. Por exemplo, para enviar o sinal SIGKILL:

tempo limite -s SIGKILL 10 top

Especificar o sinal com seu número de sinal também é possível. O comando a seguir também envia o sinal SIGKILL para o comando superior.

tempo limite -s 9 10 no topo

...Onde 9 é o número do sinal para SIGKILL.

Para obter uma lista de todos os sinais disponíveis:

kill -l

Alguns comandos não param completamente, mesmo depois de adicionar um limite de tempo. Em tais situações, adicionar um sinal de eliminação com o comando de tempo limite padrão corrige o problema.

tempo limite -k 15 10 no topo

O comando mencionado executará primeiro o comando top por 10 segundos e, se o comando não parar, enviará um sinal de eliminação para o processo após 15 segundos.

Saber mais: Como matar programas que não respondem no Linux

Restringindo o tempo de execução do comando com limite de tempo

Ao contrário do comando timeout, timelimit não é um dos pacotes padrão que vêm pré-instalados nas distros Linux. Portanto, você terá que instalar manualmente o timelimit em seu sistema.

Para instalar em distribuições baseadas em Debian:

sudo apt install timelimit

Timelimit não está disponível nos repositórios oficiais do Arch. Mas, você pode instalá-lo usando um gerenciador de pacotes AUR como yay.

sudo yay -S timelimit

Relacionado: Como instalar pacotes no Arch Linux

Para instalar no Fedora:

sudo dnf install timelimit

No RHEL e CentOS:

sudo yum install timelimit

Como alternativa, se você ainda não conseguir instalar o pacote em seu sistema, baixe o código-fonte do site oficial e instale-o manualmente.

Download: prazo

Para executar o comando top por 10 segundos usando o limite de tempo:

timelimit -t10 top

Timelimit leva vários argumentos como advertência, avisar, matar o tempo, e Killsig. Se o usuário não fornecer esses argumentos, seus valores padrão serão usados, que são warntime = 3600 segundos, warnsig = 15, killtime = 120, e killsig = 9.

Gerenciando a vida de um comando no Linux

Monitorar os comandos e assumir o controle dos processos torna-se importante se sua máquina Linux tiver recursos limitados. Utilitários como tempo limite e limite de tempo são um salva-vidas, pois permitem que você adicione restrições de tempo aos seus comandos.

Como o tempo de execução do comando, você também pode restringir o tempo de tela do sistema. Se você é um pai que não quer que seu filho perca tempo desnecessário na frente de um computador, limitar o tempo na tela é a escolha mais adequada.

E-mail
5 maneiras de bloquear sites e limitar o tempo de uso no Linux

O software de controle dos pais é virtualmente inédito no Linux. Aqui estão várias maneiras de bloquear sites e gerenciar conteúdo no Linux.

Leia a seguir

Tópicos relacionados
  • Linux
  • Linux
Sobre o autor
Deepesh Sharma (47 artigos publicados)

Deepesh é o Editor Júnior para Linux na MUO. Ele escreve conteúdo informativo na internet há mais de 3 anos. Em seu tempo livre, ele gosta de escrever, ouvir música e tocar seu violão.

Mais de Deepesh Sharma

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas técnicas, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.

.