Quero limitar o tempo em que um grep
comando do processo pode ser executado ou estar vivo.
Por exemplo. Eu quero fazer o seguinte:
grep -qsRw -m1 "parameter" /var
Mas antes de executar o grep
comando, quero limitar o tempo de vida do grep
processo, digamos não mais que 30 segundos.
Como eu faço isso?
E, se possível, como eu retorno ou redefino para não ter limite de tempo depois.
timeout
, e até instruções sobre como instalá-la. É rude ignorar esta resposta e depois duplicar sua pergunta.Respostas:
Você pode usar o limite de tempo , ele está disponível no ubuntu padrão ou você mesmo pode compilá-lo.
timelimit executa um comando e finaliza o processo gerado após um determinado tempo com um determinado sinal. Um sinal de "aviso" é enviado primeiro e, depois de um tempo limite, um sinal de "morte", semelhante à maneira como init (8) opera no desligamento.
fonte
sudo aptitude install timelimit
. Funciona muito bem quando instalado.Aqui está uma festa um pouco hackish para isso:
Basicamente, ele inicia a pesquisa em segundo plano, depois inicia um subshell que aguarda 30 segundos e depois mata o processo de pesquisa. Se a pesquisa demorar <30s, o processo já estará morto. Não é uma boa idéia matar um processo que já está morto, pois há uma chance muito pequena de que outra coisa reutilize o pid, mas, para algo assim, geralmente é bom. Por fim, a pesquisa é recolocada em primeiro plano e será executada até que seja concluída ou finalizada.
fonte
Crie um novo arquivo chamado "tgrep" e coloque o seguinte (ou chame como quiser):
Em seguida, corra
chmod a+x tgrep
. Agora, se você quiser usá-lo, digiteOu você pode apenas usá-lo como tgrep (sem o ./ e poder usá-lo em qualquer diretório) se o colocar em um diretório contido na sua variável $ PATH (como / home / dan / bin /, se estiver em sua variável $ PATH, caso contrário você pode adicioná-la).
fonte