Solaris Common Desktop Environment: Guía del usuario

Envío de señales de finalización a un proceso

El comando de finalizar de UNIX permite al usuario enviar una señal a un proceso. Una señal es un mensaje enviado a un proceso para interrumpirlo y provocar una respuesta. Si se ha diseñado el proceso para responder a las señales del tipo enviado, éste lo hará; de lo contrario, terminará. La tabla siguiente muestra algunos de los números/nombres de las señales utilizadas habitualmente y sus significados.

 Número de señal Nombre de señal  Significado
 1 HUP Colgar (utilizado a menudo antes de finalizar la sesión)
 2 INT Interrumpir (equivalente a pulsar Control+C en una sesión de terminal)
 9 KILL

Finalizar (terminar sin reorganización) 

Sólo funciona si la envía el propietario del proceso o el superusuario (root) 

El programa no puede responder a esta señal; debe terminar  

 15 TERM

Finalizar (terminar de forma ordenada, después de reorganizar) 

Sólo funciona si la envía el propietario del proceso o el superusuario (root) 

El elemento de menú Finalizar permite finalizar un proceso rápidamente enviándole una señal kill (9). El elemento de menú Señal proporciona más control de la señal enviada por el comando kill(1). Por ejemplo, podría enviar una señal INT o HUP, etcétera.


Precaución – Precaución –

Sólo debería enviar una señal a un proceso si comprende las consecuencias de su acción. Por ejemplo, si selecciona el shell de entrada y envía una señal de finalizar, se finalizará su sesión de inmediato. Para obtener información adicional sobre el control de trabajos y procesos, póngase en contacto con el administrador del sistema o consulte Solaris: Guía avanzada del usuario (Sun Microsystems).


Para finalizar un proceso (finalización rápida)

  1. Seleccione una entrada de proceso en el panel de desplazamiento del Gestor de procesos.

  2. Elija Finalizar en el menú Proceso.

    El Gestor de procesos finaliza el proceso (y sus procesos inferiores) siempre que tenga permiso para ello; de lo contrario se muestra un error. A veces el proceso tarda algunos segundos en finalizar. Puede saber si ha finalizado un proceso si no aparece la próxima vez que el Gestor de procesos actualice su visualización.


    Consejo –

    El comando UNIX equivalente es:

    kill -9 PID donde PID es el identificador del proceso seleccionado.

    Puede redefinir el comando realizado por el elemento de menú Finalizar en un comando diferente redefiniendo la acción denominada 'Kill' en el archivo:

    /usr/dt/appconfig/types/C/sdtprocess.dt


Para enviar una señal a un proceso

  1. Seleccione una entrada de proceso en el panel de desplazamiento del Gestor de procesos.

  2. Elija Señal en el menú Proceso.

    El Gestor de procesos muestra un cuadro de diálogo que le solicita que especifique las señales. Debe proporcionar como mínimo una de las 42 señales definidas en la página de comando man signal(5).

  3. Escriba el nombre o número de la señal relevante y haga clic en Aceptar.

    El Gestor de procesos envía el comando signal y cierra el cuadro de diálogo. No se envía ningún mensaje de operación satisfactoria. Habitualmente, al finalizar un proceso se finalizan también sus procesos inferiores.


Consejo –

El comando UNIX equivalente es: kill -num_nombre_señal PID

donde -num_nombre_señal es el número o nombre de la señal y PID es el ID del proceso seleccionado.