Entiendo que está fuera de tema, no pude encontrar ningún lugar en línea y estaba pensando que tal vez los gurús de la programación en la comunidad podrían saber esto.
Yo suelo usar
kill -9 pid
para matar el trabajo. Siempre me pregunté el origen del 9. Lo busqué en Internet y dice
"9 Significa una señal de KILL que no es detectable o ignorable. En otras palabras, indicaría al proceso (alguna aplicación en ejecución) que se cierre inmediatamente" (fuente: http://wiki.answers.com/Q/What_does_kill_-9_do_in_unix_in_its_entirety )
Pero, ¿por qué 9? y ¿qué pasa con los otros números? ¿Hay algún significado histórico o debido a la arquitectura de Unix?
Respuestas:
Consulte el artículo de wikipedia sobre señales Unix para ver la lista de otras señales. SIGKILL acaba de obtener el número 9.
También puede usar los mnemónicos, como los números:
fuente
Hubo otras 8 señales que se les ocurrió primero.
fuente
Creo que una mejor respuesta aquí es simplemente esta:
En cuanto a la "importancia" de 9 ... yo diría que probablemente no hay ninguno. De acuerdo con La interfaz de programación de Linux (p. 388) :
fuente
Primero necesita saber qué son las señales en sistemas similares a Unix (solo le llevará unos minutos).
Hay varios tipos de señales que podemos usar; para obtener una lista completa de todas las señales disponibles / posibles, use el comando " $ kill -l ":
En la salida anterior es claramente visible que cada señal tiene un ' número de señal ' (por ejemplo, 1, 2, 3) y un ' nombre de señal ' (por ejemplo, SIGUP, SIGINT, SIGQUIT) asociado a ella. Para obtener una búsqueda detallada de lo que hacen todas y cada una de las señales, visite este enlace .
Finalmente, llegando a la pregunta "Por qué el número 9 en el comando kill -9 ":
Hay varios métodos para enviar señales a un programa o script. Uno de los métodos comúnmente utilizados para enviar señales es usar el comando kill ; la sintaxis básica es:
Donde señal es el número o el nombre de la señal, seguido del Id de proceso (pid) al que se enviará la señal.
Por ejemplo, -SIGKILL (o -9 ), la señal mata el proceso inmediatamente.
y
Ambos comandos son lo mismo, es decir, arriba hemos usado el 'nombre de la señal', y luego hemos usado 'número de la señal'.
Veredicto : Uno tiene la opción abierta de usar el 'nombre de la señal' o el 'número de la señal' con el comando de matar .
fuente
Es una referencia a "Revoulution 9" de los Beatles. Una colección de clips de sonido encadenados y ruidos encontrados, esta grabación presenta a John Lennon repitiendo una y otra vez "Número 9, Número 9 ..." Además, esta canción atrajo más atención en 1969 cuando se descubrió que cuando se tocaba al revés, John parecía para estar diciendo "Enciéndeme, hombre muerto ..."
Por lo tanto, la novena señal estaba destinada a ser la más letal de las señales de muerte.
fuente
Hay una lista muy larga de señales Unix, que puede ver en Wikipedia . De manera algo confusa, en realidad puede usar
kill
para enviar cualquier señal a un proceso. Por ejemplo,kill -SIGSTOP 12345
fuerza al proceso 12345 a pausar su ejecución, mientraskill -SIGCONT 12345
le dice que se reanude. Una versión un poco menos críptica dekill -9
eskill -SIGKILL
.fuente
kill
. Probablemente porque el comportamiento predeterminado para la mayoría del conjunto original de señales (números del 1 al 15) era terminar el proceso.No creo que tenga ningún significado para el número 9. Además, a pesar de la creencia común,
kill
se usa no solo para matar procesos sino también para enviar una señal a un proceso. Si tienes mucha curiosidad puedes leer aquí y aquí .fuente
por qué matar -9: el número 9 en la lista de señales se ha elegido para ser SIGKILL en referencia a "matar las 9 vidas de un gato".
fuente
SIGKILL
utilizar para matar el proceso.SIGKILL
no se puede ignorar ni manejar. En Linux, formas de darSIGKILL
.fuente
Escriba el comando kill -l en su shell
encontrará que en el noveno número [ 9) SIGKILL ], por lo que puede usar kill -9 o kill -SIGKILL
SIGKILL es una señal de muerte segura, no se puede desplazar, ignorar o manipular. Siempre funciona con su comportamiento predeterminado, que es matar el proceso.
fuente
El
-9
es el número de señal y especifica que el mensaje de interrupción enviado debe ser del tipo KILL (no detectable, no ignorable).Que es lo mismo que a continuación.
Sin especificar un número de señal, el valor predeterminado es -15, que es TERM (señal de terminación de software). Escribir
kill <pid>
es lo mismo quekill -15 <pid>
.fuente
Ambos son iguales que kill -sigkill processID, kill -9 processID. Es básicamente por terminación forzada del proceso.
fuente
hay algunos procesos que no se pueden matar como este "matar% 1". si tenemos que terminar ese proceso, se usa un comando especial para matar ese proceso que es kill -9. por ejemplo, abra vim y deténgase si usa ctrl + z, luego vea trabajos y después de aplicar el proceso de eliminación, este proceso no terminará, por lo que aquí usamos el comando kill -9 para finalizar.
fuente