comando unix command history kill

unix - comando - kill command



¿Por qué el número 9 en el comando kill-9 en Unix? (13)

Entiendo que no está relacionado con el tema, no pude encontrar nada en línea y pensé que tal vez los gurús de programación de la comunidad podrían saberlo.
Usualmente uso

kill -9 pid

para matar el trabajo. Siempre me pregunté el origen de 9. Lo busqué en línea, y dice

"9 Significa la señal KILL que no se puede capturar o ignorar. En otras palabras, indicará el proceso (alguna aplicación en ejecución) para salir 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?


¿por qué kill -9: el número 9 en la lista de señales ha sido elegido para ser SIGKILL en referencia a "matar a las 9 vidas de un gato".


Ambos son lo mismo que kill -sigkill processID, kill -9 processID. Es básicamente para la terminación forzada del proceso.


Creo que una mejor respuesta aquí es simplemente esto:

mike@sleepycat:~☺ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX

En cuanto al "significado" de 9 ... diría que probablemente no haya ninguno. De acuerdo con la interfaz de programación de Linux (p 388) :

Cada señal se define como un entero único (pequeño), comenzando en forma secuencial desde 1. Estos números enteros se definen con nombres simbólicos de la forma SIGxxxx. Dado que los números reales utilizados para cada señal varían según las implementaciones , son estos nombres simbólicos los que siempre se usan en los programas.


El -9 es el signal_number y especifica que el mensaje de kill enviado debe ser del tipo KILL (no capturable, no ignorable).

kill -9 pid

Que es lo mismo que a continuación.

kill -SIGKILL pid

Sin especificar un signal_number, el valor predeterminado es -15, que es TERM (señal de terminación de software). Escribir kill <pid> es lo mismo que kill -15 <pid> .


Es una referencia a "Revoulution 9" de los Beatles. Una colección de clips de sonido colgados 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 llamó más la atención en 1969 cuando se descubrió que cuando se reproducía hacia atrás, John parecía estar diciendo "enciéndame, hombre muerto ..."

Por lo tanto, la novena señal estaba destinada a ser la más mortal de las señales de muerte.


Escriba el comando kill -l en su caparazón

lo encontrarás en el noveno número [ 9) SIGKILL ], así que uno puede usar kill -9 o kill -SIGKILL

SIGKILL es una señal de muerte segura, no puede desubicarse, ignorarse ni manipularse. Siempre funciona con su comportamiento predeterminado, que es matar el proceso.


Hay una lista muy larga de señales de Unix, que puedes ver en Wikipedia . De manera algo confusa, puedes usar kill para enviar cualquier señal a un proceso. Por ejemplo, kill -SIGSTOP 12345 obliga al proceso 12345 a pausar su ejecución, mientras que kill -SIGCONT 12345 le indica que reanude. Una versión ligeramente menos críptica de kill -9 es kill -SIGKILL .


Hubo otras 8 señales que se les ocurrieron primero.


No creo que haya ningún significado para el número 9. Además, a pesar de lo que se cree, kill se usa no solo para matar procesos sino también para enviar una señal a un proceso. Si eres realmente curioso, puedes leer here y here .


Primero necesitas saber qué son las señales en los sistemas tipo Unix (te llevará solo unos minutos).

Señales , son interrupciones de software enviadas a un programa (en ejecución) para indicar que ha ocurrido un evento importante.

Los eventos pueden variar de las solicitudes de los usuarios a los errores de acceso a memoria ilegales. Algunas señales, como la señal de interrupción, indican que un usuario le ha pedido al programa que haga algo que no está en el flujo de control habitual.

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 él. Para una vista detallada de lo que hace cada Señal, visite este link .

Finalmente, llegando a la pregunta "¿Por qué el número 9 en kill -9 comando":

Hay varios métodos para entregar 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:

$ kill -signal pid

Donde la señal es el número o nombre de la señal, seguido del proceso Id (pid) al que se enviará la señal.

Por ejemplo, -SIGKILL (o -9 ), la señal mata el proceso de inmediato.

$ kill -SIGKILL 1001

y

$ kill -9 1001

ambos comandos son una misma cosa, es decir, arriba hemos usado el ''nombre de señal'', y luego hemos usado ''número de señal''.

Veredicto : Uno tiene una opción abierta para usar el ''nombre de señal'' o el ''número de señal'' con el comando kill .


SIGKILL usa para matar el proceso. SIGKILL no puede ser ignorado o manejado. En Linux, formas de dar SIGKILL.

**kill -9 <process_pid> kill -SIGKILL <process_pid> killall -SIGKILL <process_name> killall -9 <process_name>**



hay algún proceso que no se puede matar así "kill% 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 detenga si usa ctrl + z luego vea trabajos y luego de aplicar el proceso de eliminación de este proceso no terminará, así que aquí usamos el comando kill -9 para terminar.