SUSCRÍBETE

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 4 de julio de 2015; las comprobaciones requieren 3 ediciones .
SUSCRÍBETE
Descripción Pérdida de conexión con el terminal
Defecto terminación del proceso
Códigos SA_SIGINFO
No tiene códigos específicos.

En los sistemas POSIX , SIGHUP  es una señal enviada a un proceso para notificar que se ha perdido la conexión con el terminal de control del usuario.

SIGHUP es una constante entera definida en el signal.h. Los nombres simbólicos de las señales se utilizan en lugar de los números, ya que los números de las señales pueden diferir en diferentes implementaciones.

POSIX asigna a SIGHUP el valor 1. Por ejemplo, para activar nuevos terminales después de agregarlos a un archivo , se /etc/ttysrecomienda enviar SIGHUP al proceso init con el kill -1 1comando " " (init tiene PID = 1).

Etimología

SIG  es un prefijo común que significa "señal", HUP  es una forma abreviada de inglés.  colgar  - colgar, interrupción de línea.

Historia

Durante muchos años, se accedía a las computadoras (mainframes) conectando terminales de computadora a través de líneas seriales (por ejemplo, líneas del estándar RS-232 ). Por lo tanto, al diseñar el sistema de señales , se definió una señal de desconexión para finalizar todos los programas lanzados desde el terminal perdido.

Las señales siempre han sido un medio conveniente de comunicación entre procesos, pero los primeros diseños no incluían señales personalizadas (como SIGUSR1 y SIGUSR2 posteriores ) que un programa podría usar para sus propias necesidades. Por ello, en programas que no utilizan terminales de control durante su trabajo, como los daemons , se empezó a utilizar SIGHUP para la reinicialización (relectura de archivos de configuración). Este uso de SIGHUP ha sobrevivido hasta nuestros días, tanto en programas antiguos y estándar ( init , inetd , cron , Sendmail , Apache ...), como en la mayoría de los nuevos, y se considera el estándar de facto.

Uso

La señal SIGHUP se envía:

La acción predeterminada normal para SIGHUP en los sistemas POSIX es finalizar el proceso.

Cuando un shell de Unix recibe un SIGHUP, generalmente reinicia las tareas detenidas antes de enviarles un SIGHUP. En otras implementaciones (por ejemplo, GNU bash ), el shell "renuncia" a todas las tareas secundarias antes de salir (y continúan ejecutándose) .

SIGHUP puede ser capturado o ignorado por el programa.

Para evitar que los programas y las utilidades estándar finalicen SIGHUP , existe una utilidad nohup(un "prefijo" para un programa en la línea de comandos). nohupconfigura SIGHUP para que se ignore y luego ejecuta el programa con argumentos en segundo plano con la salida redirigida a un archivo nohup.outen el directorio de inicio o actual del usuario.