Comandos de la terminal/kill

De WikiCabal
Ir a la navegación Ir a la búsqueda

kill

[rrc@Llawyr ComandosDeLaTerminal]$ kill -?
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

[rrc@Llawyr ~]$ rpm -qf $( which kill )
bash: /usr/bin/rpm: Permission denied
[rrc@Llawyr ~]$ su -
Password: 
[root@Llawyr ~]# rpm -qf $( which kill )
util-linux-2.24-2.mga4

[root@Llawyr ~]# 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	

SIGABRT
     La señal SIGABRT se envia al proceso para decirle a abortar/Terminar.
     La señal generalmente es iniciada por el propio proceso cuando llama 
     a la función de interrupción de la biblioteca estándar de C, pero se 
     puede enviar el proceso desde fuera, así como cualquier otra señal

SIGALRM, SIGVTALRM and SIGPROF
     Las señales SIGALRM, SIGVTALRM y SIGPROF  se envían a un proceso cuando 
     transcurre el plazo especificado en una llamada a una función 
     (por ejemplo, setitimer) de ajuste de alarma precedente. 
     SIGALRM se envía cuando real o ha transcurrido el tiempo de reloj. 
     SIGVTALRM se envía cuando el tiempo de CPU utilizado por el proceso transcurre. 
     SIGPROF se envía cuando el tiempo de CPU utilizado por el proceso 
     y el sistema en nombre el proceso transcurre

SIGBUS
     La señal SIGBUS es enviada a un proceso cuando provoca un error de bus. 
     Las condiciones que conducen a la señal se eleva son, por ejemplo, 
     alineación de acceso de memoria incorrecta o inexistente dirección física

SIGCHLD
     La señal SIGCHLD es enviada a un proceso cuando un proceso hijo termina, 
     se interrumpe o se reanuda después de ser interrumpido. Un uso común de 
     la señal es para indicar al sistema operativo para limpiar los recursos 
     utilizados por un proceso secundario después de su finalización sin una 
     llamada explícita a la llamada de sistema de espera

SIGCONT
     La señal SIGCONT indica al sistema operativo para continuar (reinicio) 
     un proceso previamente hizo una pausa por la señal SIGSTOP o SIGTSTP. 
     Un uso importante de esta señal está en control de trabajos en el shell de Unix
 
SIGFPE
     La señal SIGFPE es enviada a un proceso cuando se ejecuta una operación aritmética 
     errónea, tales como división por cero (el nombre 'FPE', a excepción de coma flotante, 
     es un nombre incorrecto ya que la señal cubre entero-aritmética errores también)

SIGHUP
     La señal SIGHUP es enviada a un proceso cuando su control terminal está cerrada. 
     Originalmente fue diseñado para notificar el proceso de una caída de línea serial (un bloqueo).
     En los sistemas modernos, esta señal generalmente significa que el pseudo controla 
     o terminal virtual ha sido cerrado.[3] muchos demonios recargar sus archivos de 
     configuración y volver a abrir sus archivos de registro en lugar de salir al 
     recibir esta señal. nohup es un comando para hacer un comando ignore la señal
 
SIGILL
     La señal SIGILL es enviada a un proceso cuando intenta ejecutar una instrucción 
     ilegal, malformada, desconocida o privilegiada

SIGINT
     La señal SIGINT es enviada a un proceso por su terminal control cuando un usuario 
     desea interrumpir el proceso. Esto normalmente se inicia pulsando Control-C, 
     pero en algunos sistemas, puede utilizarse la tecla 'delete' carácter o 'break'
 
SIGKILL
     La señal SIGKILL es enviada a un proceso para hacer que termine inmediatamente (matar).
     En contraste con SIGTERM y SIGINT, esta señal no puede ser atrapada o ignorada, y 
     el proceso de recepción no puede realizar cualquier limpiar al recibir esta señal

SIGPIPE
     La señal SIGPIPE es enviada a un proceso cuando se intenta escribir en una tubería
     sin un proceso conectado al otro extremo

SIGQUIT
     La señal SIGQUIT es enviada a un proceso por su terminal de control cuando el 
     usuario solicita que el proceso de dejar y realizar un volcado de memoria

SIGSEGV
     La señal SIGSEGV es enviada a un proceso cuando hace una referencia válida 
     de memoria virtual, o fallo de segmentación, es decir, cuando se realiza 
     una violación de segmentación

SIGSTOP
     La señal SIGSTOP indica al sistema operativo para detener un proceso posterior reanudación

SIGTERM
     La señal SIGTERM es enviada a un proceso para solicitar su terminación. A diferencia 
     de la señal SIGKILL, puede ser atrapado e interpretado o ignorada por el proceso. 
     Esto permite que el proceso realizar buena terminación liberando recursos y ahorro 
     estatal si es apropiado. Cabe señalar que SIGINT es casi idéntico al SIGTERM
    
SIGTSTP
     La señal SIGTSTP es enviada a un proceso por su terminal de control para solicitar
     que se detenga temporalmente. Comúnmente es Iniciado por el usuario pulsando
     Control-Z. A diferencia de SIGSTOP, el proceso puede registrar un manejador de 
     señales para o ignorar la señal

SIGTTIN and SIGTTOU
     Las señales SIGTTIN y SIGTTOU son enviadas a un proceso cuando intenta leer o escribir
     respectivamente desde el tty mientras que en el fondo. Normalmente, esta señal puede 
     ser recibida solamente por procesos bajo control de trabajo; demonios no tienen 
     terminales de control y no deben recibir esta señal

SIGUSR1 and SIGUSR2
     Las señales SIGUSR1 y SIGUSR2 son enviadas a un proceso para indicar 
     las condiciones definidas por el usuario

SIGPOLL
     La señal SIGPOLL es enviada a un proceso cuando ocurre un evento de 
     I/O asincrónico (es decir, que ha sido encuestado)

SIGSYS
     La señal SIGSYS es enviada a un proceso cuando pasa un mal argumento a 
     una llamada de sistema

SIGTRAP
     La señal SIGTRAP es enviada a un proceso cuando se produce una excepción 
     (o trampa): una condición que ha solicitado un depurador para estar 
     informado de — por ejemplo, cuando se ejecuta una función en particular, 
     o cuando una variable particular cambia su valor

SIGURG
     La señal SIGURG es enviada a un proceso cuando un zócalo tiene urgente 
     o datos fuera de banda disponibles para leer

SIGXCPU
     La señal SIGXCPU es enviada a un proceso cuando ha utilizado por la CPU
     durante un período que excede un cierto valor predeterminado del 
     usuario-configurables.[7] la llegada de una señal SIGXCPU proporciona 
     el proceso de recibir una oportunidad para guardar rápidamente cualquier
     resultados intermedios y salir con dignidad, antes de que sea detenido
     por el sistema operativo mediante la señal SIGKILL

SIGXFSZ
     La señal SIGXFSZ es enviada a un proceso cuando crece un archivo más 
     grande que el máximo permitido de tamaño

SIGRTMIN to SIGRTMAX
     Las SIGRTMIN hasta SIGRTMAX pretende ser utilizado para propósitos definidos
     por el usuario. Son señales en tiempo real

Signal 	       Code   Action 	Description
              Default
SIGABRT 	6 	A       Señal de abortar el proceso
SIGALRM 	14 	T       reloj despertador
SIGBUS 	        10      A       Acceso a una parte indeterminada de un objeto de memoria
SIGCHLD 	18 	I       Hilo terminado
SIGCONT 	25 	C       Continuar si terminado
SIGFPE  	8       A       Opración aretmetica ilegal
SIGHUP    	1 	T       Quelga
SIGILL 	        4       A       Instrucción Ilegal 
SIGINT 	        2       T       Señal a terminar
SIGKILL 	9 	T       Matar (No se puede capturar o ignorar)
SIGPIPE 	13 	T       Escrito a un 'pipe' no monitoreado
SIGQUIT 	3 	A       Señal a terminar
SIGSEGV 	11 	A       Referencia a memoria invalido
SIGSTOP 	23 	S       Terminar ejecución (No se puede capturar o ignorar)
SIGTERM 	15 	T       Señal a terminar
SIGTSTP 	23 	S       Señal a terminar
SIGTTIN 	26 	S       Lectura atente de proceso de fondo
SIGTTOU 	27 	S       Escrito atente de proceso de fondo
SIGUSR1 	16 	T       Señal 1 definido por usuario
SIGUSR2 	17 	T       Señal 2 definido por usuario
SIGPOLL 	22 	T       Evento encuestable
SIGPROF 	29 	T       Temporizador de profiling vencido
SIGSYS 	        12      A       Mal llamada del sistema
SIGTRAP 	5 	A       Trace/breakpoint trampa
SIGURG 	        21      I       Datos de banda ancha está disponible en un socket
SIGVTALRM 	28 	T       Temporizador vertual vencido
SIGXCPU 	30 	A       Límite de tiempo de CPU excedido
SIGXFSZ 	31 	A       Límite de tamaño de archivo excedido

    Default Actions:
    T - Terminación anormal del proceso. Se cancela el proceso con todas las 
        consecuencias de exit() excepto que el estado de disposición de wait()
        y waitpid() indica terminación anormal de la señal especificada
    A - Terminación anormal del proceso. Además, acciones de terminación anormal
        aplicación definidos, como la creación de un fichero core, pueden ocurrir
    I - Ignorar la señal
    S - Terminar el proceso
    C - Continuar con el proceso, si se detiene; en caso contrario, ignorar la señal

[rrc@Llawyr ~]$ cd ComandosDeLaTerminal/

[rrc@Llawyr ComandosDeLaTerminal]$ cat KillIt
#!/usr/bin/bash

Num=0

while :; do
  echo "Num es ${Num} y PID es $$"
  ((Num++))
done

[rrc@Llawyr ComandosDeLaTerminal]$ ./KillIt 
Num es 0 y PID es 19768
Num es 1 y PID es 19768
Num es 2 y PID es 19768
Num es 3 y PID es 19768
Num es 4 y PID es 19768
Num es 5 y PID es 19768
Num es 6 y PID es 19768
 .
 .
 .

[rrc@Llawyr ~]$ ps -aux | grep KillIt
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
rrc      19768 25.5  0.0  15756  1260 pts/0    S+   13:39   0:12 /usr/bin/bash ./KillIt
rrc      19807  0.0  0.0  15444  1004 pts/1    S+   13:39   0:00 grep --color KillIt

[rrc@Llawyr ~]$ kill 19768

Num es 1078014 y PID es 19768
Num es 1078015 y PID es 19768
Num es 1078016 y PID es 19768
Terminated

[rrc@Llawyr ComandosDeLaTerminal]$ ./KillIt
Num es 0 y PID es 20444
Num es 1 y PID es 20444
Num es 2 y PID es 20444
Num es 3 y PID es 20444
Num es 4 y PID es 20444

[rrc@Llawyr ComandosDeLaTerminal]$ kill -s STOP 20444

Num es 6288 y PID es 20444
Num es 6289 y PID es 20444
Num es 6290 y PID es 20444
Num es 6291 y PID es 20444
Num es 6292 y PID es 20444
[1]+  Stopped              ./KillIt

[rrc@Llawyr ComandosDeLaTerminal]$ kill -s CONT 20444
Num es 6293 y PID es 20444
Num es 6294 y PID es 20444
Num es 6295 y PID es 20444
Num es 6296 y PID es 20444
Num es 6297 y PID es 20444

[rrc@Llawyr ComandosDeLaTerminal]$ kill -s TERM 20444
[1]+  Terminated              ./KillIt