Estoy trabajando en un programa que usa memoria compartida. Varias instancias de dicho programa se conectarán a una existente o la crearán de nuevo, y la devolverán al sistema operativo cuando no haya otros procesos o simplemente se desconectarán y terminarán. Pensé en usar un contador simple para realizar un seguimiento de cuántos procesos lo usan.¿Cómo hacer una limpieza después de SIGKILL?
Estoy usando la función atexit()
para hacer la limpieza, sin embargo, afaik, al recibir la señal SIGKILL, los procesos no harán ninguna limpieza, por lo que si alguno de esos procesos no termina normalmente, es posible que nunca pueda limpia la memoria
¿Hay alguna manera de especificar qué hacer incluso después de una señal SIGKILL? Probablemente voy a escribir algún mecanismo similar a un temporizador para verificar si los procesos todavía están vivos, pero realmente me gustaría evitarlo si hay otra forma.
+1 para explicar un concepto – Robert