GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué puede hacer que se genere SIGHUP?

Las señales se pueden enviar usando kill utilidad o matar syscall. Por supuesto, puede intentar averiguar quién está enviando esa señal o desconectando sus terminales o conexiones de red, pero hay una forma práctica más sencilla de solucionar su problema.

Cuando se supone que el código debe ejecutarse como un demonio, pero en realidad no lo es (como el suyo), existe un envoltorio que puede convertir cualquier programa en un demonio. Sorpresa:este envoltorio se llama daemon ! Tiene muchas opciones, probablemente la más importante para usted, la opción de reiniciar automáticamente su utilidad en caso de que falle por algún motivo.

Si este comando no está instalado en su Ubuntu, simplemente sudo apt-get install daemon y man daemon para empezar.


Bueno, hay un par de cosas a tener en cuenta sobre SIGHUP. En primer lugar, su origen proviene del concepto de colgado, es decir, pérdida de conexión a una consola a través de algo como un módem. En el lenguaje moderno, esto generalmente significa que ha perdido su tty de control. A menos que haya tenido cuidado de desconectarse de su tty, cualquier programa iniciado en una terminal determinada recibirá un SIGHUP cuando se cierre la terminal. Consulte aquí para obtener detalles sobre cómo hacer esto en su programa. Otras opciones incluyen:

  • ejecutando su programa dentro de screen o tmux
  • ejecuta tu programa con nohup o algún otro marco demonizante

La otra posibilidad es que algo esté enviando deliberadamente a su proceso un SIGHUP que, por "tradición", a menudo se usa para señalar a un proceso que debe volver a leer su configuración.


Linux
  1. ¿Puede Strace/ptrace hacer que un programa se bloquee?

  2. ¿Qué uso en Linux para hacer ejecutable un programa de Python?

  3. ¿Puede un programa leer su propia sección elf?

  4. ¿Qué hacer cuando Ctrl + C no puede matar un proceso?

  5. Determinar si la salida es stdout o stderr

¿Qué es Bonjour en mi computadora? Guía para PC del programa Bonjour de Windows 10

¿Cómo puedo obtener lo que ha devuelto mi función principal?

¿Qué puede causar un "Recurso temporalmente no disponible" en el comando sock send ()?

¿Qué hace ENV (“_”) para la antidepuración?

¿Puede un proceso tener un propietario? ¿Qué significa?

¿Qué puede causar una señal 11?