Quiero limitar el tiempo que un grep
comando de proceso puede ejecutarse o estar vivo.
Por ejemplo. Quiero realizar lo siguiente:
grep -qsRw -m1 "parameter" /var
Pero antes de ejecutar el grep
comando, quiero limitar la duración del grep
proceso, digamos que no más de 30 segundos.
¿Cómo hago esto?
Y si puede, ¿cómo regreso o restablezco para no tener límite de tiempo después?
timeout
, e incluso recibiste instrucciones sobre cómo instalarla. Es grosero ignorar esta respuesta y luego duplicar su pregunta.Respuestas:
Puede usar timelimit , está disponible en el ubuntu predeterminado o puede compilarlo usted mismo.
timelimit ejecuta un comando y finaliza el proceso generado después de un tiempo determinado con una señal dada. Primero se envía una señal de "advertencia", luego, después de un tiempo de espera, una señal de "muerte", similar a la forma en que init (8) opera en el apagado.
fuente
sudo aptitude install timelimit
. Funciona muy bien una vez instalado.Aquí hay un poco de hack para eso:
Básicamente, comienza la búsqueda en segundo plano, luego inicia una subshell que espera 30 segundos y luego mata el proceso de búsqueda. Si la búsqueda toma <30s, el proceso ya estará muerto. No es una buena idea matar un proceso que ya está muerto, ya que hay una pequeña posibilidad de que algo más reutilice el pid, pero para algo como esto generalmente está bien. Por último, la búsqueda se vuelve a poner en primer plano y se ejecutará hasta que finalice o se elimine.
fuente
Crea un nuevo archivo llamado "tgrep" y pon lo siguiente (o llámalo como quieras):
A continuación, corre
chmod a+x tgrep
. Ahora si quieres usarlo puedes escribirO simplemente puede usarlo como tgrep (sin el ./ y poder usarlo desde cualquier directorio) si lo coloca en un directorio contenido en su variable $ PATH (como / home / dan / bin /, si está en su variable $ PATH, de lo contrario puede agregarla).
fuente