fork () puede fallar: esto es importante

Eh, tenedor (). Algunos procesos dan lugar a otros. Creo que tengo una historia sobre esto.



Fork puede fallar. Lo entiendes? De hecho, ¿entiendes? Es muy serio. La horquilla puede fallar. Lo mismo que malloc. No a menudo, pero cuando eso sucede, no puede simplemente tomarlo e ignorarlo. Debes hacer algo en este caso.



Parece que todos saben que fork devuelve 0 al proceso hijo y al padre algún número positivo: el pid del hijo. Emite este número, que se utiliza más tarde.



¿Adivina qué sucede cuando no verificas la respuesta de error? Sí, tratará "-1" (error de bifurcación) como un pid válido.



Este es solo el comienzo. El verdadero dolor comienza más tarde, cuando llega el momento de enviar la señal. Es posible que desee cerrar el proceso hijo.



Estás haciendo kill (pid, signal). Por ejemplo, kill (pid, 9).



¿Qué sucede cuando pid es -1? Es muy importante saberlo. Realmente importante.



...

...

...



Aquí pondré una página de ayuda kill (2) de tu Linux.



Si pid es -1, sig se envía a todos los procesos para los que el proceso de llamada tiene permiso para enviar señales, excepto para el proceso 1 (init) ...


¿Ver? Matar es pid -1equivalente a matar todos los demás procesos. Si eres root, entonces se acabó todo. Tú e init quedan. Todo lo demás se fue, se fue, se fue



¿Tiene código que controle los procesos? ¿Alguna vez encontró una máquina completamente muerta, a excepción de la consola de texto getty / login (que, por supuesto, se reinicia) y el administrador de procesos? ¿Probablemente culpado de este asesino en el núcleo?



Quizás no sea culpa suya. Mejor compruebe que no ha ejecutado kill (-1).



Unix tiene suficientes trampas y trampas para osos para todos los gustos.



All Articles