Google
Web dns.bdat.net
next up previous contents
Next: Procesos en segundo plano Up: Operaciones con procesos Previous: Operaciones con procesos en   Índice General

Envío de señales a procesos

Las órdenes kill y killall se utilizan para enviar señales a un proceso. Las señales más habituales son:

SIGHUP (1)

Colgar. Ciertos procesos utilizan la señal SIGHUP para indicar al proceso que relea su fichero de configuración. Este es el caso, por ejemplo, de los procesos init y inetd.

SIGCONT (18)

Continuar. Cuando un proceso detenido recibe esta señal continúa su ejecución.

SIGSTOP (19)

Cuando un proceso en estado preparado recibe esta señal se detiene.

SIGINT (2)

Termina un proceso y desaparece.

SIGTERM (15)

Mata un proceso de forma controlada.

SIGKILL (9)

Esta señal mata un proceso incondicionalmente. Para enviar una señal a un proceso disponemos de dos órdenes que realizan esa labor:

Orden kill

Esta orden la podemos usar de la siguiente forma:

    $ kill -señal lista_pid_proceso

donde el valor de lista_pid_proceso tendremos que averiguarlos utilizando la orden ps. En cuanto a señal puede ser bien su valor numérico o bien su valor simbólico, omitiendo el SIG inicial. Por ejemplo:

    $ kill -9 337

o lo que sería lo mismo

    $ kill -KILL 337
Orden killall

Esta orden es ligeramente diferente a la orden kill por dos motivos; en primer lugar utiliza el nombre de proceso en lugar del pid, y además le envía la señal a todos los procesos que tengan el mismo nombre. Es decir:

    $ killall -señal nombre_proceso

Por lo demás, su comportamiento es idéntico, por lo que serían equivalentes

    $ kill -HUP 1  
    $ killall -HUP init

al haber un único proceso init, con pid igual a 1.

También hay que tener en cuenta que todos los procesos no están preparados para recibir todas las señales. Algunas señales siguen un tratamiento estándar, otras las gestiona el propio proceso y otras son simplemente ignoradas.

Ejemplos:

    $ ps
    $ sleep 100 (pulsar C-z)
    $ ps
    $ kill -CONT pid    # pid se sustituye por el valor obtenido
 en ps    (pulsar C-z)
    $ kill -9 pid
    $ ps     $ killall -HUP init

y ahora se puede repetir lo mismo con killall. Por ejemplo:

    $ ps  
    $ sleep 100 
    $ C-z 
    $ ps 
    $ killall -CONT pid    
    $ C-z 
    $ killall -9 pid 
    $ ps

next up previous contents
Next: Procesos en segundo plano Up: Operaciones con procesos Previous: Operaciones con procesos en   Índice General
Pedro Pablo 2001-12-14