plotter flag compiler compilador c linux gcc x86

flag - gcc plotter



¿La función kill es sincrónica? (4)

  1. No. man 2 kill
  2. man wait

Vea también man 7 signal para más detalles sobre las señales de Unix.

¿Es la función kill en Linux síncrona? Por ejemplo, si llamo a la función de kill programada para finalizar un proceso, volverá solo cuando finalice el proceso deseado o simplemente enviará la señal y regresará. Si ese es el caso, ¿cómo puedo hacer que se espere a que finalice el proceso previsto?


La llamada al sistema de interrupción no espera a que el otro proceso haga nada. La señal se publica en el proceso de destino y se devuelve la llamada del sistema. El proceso objetivo advierte la señal cuando está programado para ejecutarse.


No, ya que no mata nada, solo envía una señal al proceso.

Por defecto, esta señal puede incluso ser bloqueada o ignorada.

No puedes bloquear kill -9 que representa enviar SIGKILL

Para esperar a que el proceso muera:

while kill -0 PID_OF_THE_PROCESS 2>/dev/null; do sleep 1; done


kill no puede ser sincrónico ya que solo envía una señal. El proceso de destino podría ignorar las señales entrantes (cf. SIG_IGN ), por lo que no hay garantía con respecto al efecto de kill .

No debería ser difícil hacer un experimento que verifique esta hipótesis. Comienza el proceso A y haz que maneje SIGTERM con un sueño de 10 segundos antes de morir. Luego inicie el proceso B, que entrega un SIGTERM a A y sale inmediatamente.