GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo eliminar un proceso secundario después de un tiempo de espera determinado en Bash?

# Spawn a child process:
(dosmth) & pid=$!
# in the background, sleep for 10 secs then kill that process
(sleep 10 && kill -9 $pid) &

o también para obtener los códigos de salida:

# Spawn a child process:
(dosmth) & pid=$!
# in the background, sleep for 10 secs then kill that process
(sleep 10 && kill -9 $pid) & waiter=$!
# wait on our worker process and return the exitcode
exitcode=$(wait $pid && echo $?)
# kill the waiter subshell, if it still runs
kill -9 $waiter 2>/dev/null
# 0 if we killed the waiter, cause that means the process finished before the waiter
finished_gracefully=$?

(Como se ve en:BASH FAQ entrada #68:"¿Cómo ejecuto un comando y hago que se cancele (tiempo de espera) después de N segundos?")

Si no te importa descargar algo, usa timeout (sudo apt-get install timeout ) y úselo como:(la mayoría de los sistemas ya lo tienen instalado; de lo contrario, use sudo apt-get install coreutils )

timeout 10 ping www.goooooogle.com

Si no desea descargar algo, haga lo que hace timeout internamente:

( cmdpid=$BASHPID; (sleep 10; kill $cmdpid) & exec ping www.goooooogle.com )

En caso de que desee hacer un tiempo de espera para un código bash más largo, use la segunda opción como tal:

( cmdpid=$BASHPID; 
    (sleep 10; kill $cmdpid) \
   & while ! ping -w 1 www.goooooogle.com 
     do 
         echo crap; 
     done )

Linux
  1. ¿Cómo hacer que el proceso hijo muera después de que el padre salga?

  2. ¿Cómo matar todos los procesos con un nombre parcial dado?

  3. Cómo matar el proceso zombie

  4. ¿Cómo usar kill SIGUSR2 en bash?

  5. ¿Cómo usar Ctrl+C para eliminar todos los procesos en segundo plano iniciados en un script Bash?

¿Cómo matar un proceso en Linux? Comandos para Terminar

Cómo matar un proceso en Linux

Cómo matar procesos Zombie en Linux

Cómo matar el proceso de ejecución de Linux en un puerto particular

Cómo MATAR un proceso en Linux

Cómo matar procesos Zombie en Ubuntu