A veces, cuando ejecuto un comando killall
desde Terminal, un compañero de trabajo sugiere o edita mis scripts para mostrar killall -HUP
.
¿Qué hace la parte -HUP
?
A veces, cuando ejecuto un comando killall
desde Terminal, un compañero de trabajo sugiere o edita mis scripts para mostrar killall -HUP
.
¿Qué hace la parte -HUP
?
La opción -HUP
es la señal que se envía a los procesos mediante el comando killall
. Puede ser un poco difícil de decir, pero la entrada correspondiente en el killall
manual es:
-SIGNAL Send a different signal instead of the default TERM. The signal may be specified
either as a name (with or without a leading SIG), or numerically.
La diferencia entre la señal TERM
predeterminada que killall
envía y la señal HUP
depende en gran medida del programa al que envíes la señal. Al final del programa, reciben un valor de señal de interrupción diferente. Por lo tanto, el programa puede detectar las interrupciones y decidir, en función del valor, si deben hacer una cosa u otra.
La señal TERM
(históricamente la "señal de terminación") generalmente se envía a un programa para solicitar su terminación (que es una versión más políticamente de forcing su terminación con la señal KILL
) . El programa es libre de capturar e ignorar la señal TERM
. No tiene que terminar si no quiere y puede ignorar completamente esta señal.
La señal HUP
(históricamente la "señal de suspensión") generalmente se envía a un programa para solicitar que se reinicie y vuelva a leer toda su configuración en el proceso. El comportamiento real del programa depende de la implementación específica del programa. No todos los programas capturan HUP
y no están obligados a hacerlo por convención o dogma. Por ejemplo, el servidor web Apache detectará una señal HUP
y volverá a leer todos sus archivos de configuración, pero no reiniciará ningún proceso.
Si desea finalizar realmente los procesos y no preocuparse por si van a capturar y obedecer, la señal usa la señal KILL
. No se puede capturar ni ignorar y da como resultado la terminación del proceso.
Para una buena revisión de las señales POSIX disponibles vea este artículo de Wikipedia .
-HUP
es la señal de "colgar" que puede hacer que una aplicación se detenga, leer su archivo de configuración y luego comenzar de nuevo. No es necesariamente mejor que usarlo sin.
killall Finder
y
killall -HUP Finder
Son respetuosamente iguales. En OS X Finder se reiniciará, pero volverá a leer su archivo de configuración. Este podría no ser realmente el caso si la aplicación que se está ejecutando no tiene la función -HUP
incorporada. Como mencionaba el anterior póster de apache. Lee sus archivos de configuración, pero no puede iniciarse de nuevo.
Lea otras preguntas en las etiquetas terminal bash macos command-line