GNU/Linux >> Tutoriales Linux >  >> Linux

UNIX/Linux:3 Maneras de Enviar Señal a Procesos

Pregunta :¿Cómo envío una señal a otro proceso? ¿Me pueden explicar todas las opciones disponibles para enviar señales a un proceso en ambiente UNIX/Linux?

Respuesta :Puede enviar varias señales a los procesos utilizando uno de los métodos explicados en este artículo.

1. Enviar señal a un proceso usando Kill

Utilice el comando kill para enviar una señal a un proceso. Por ejemplo, si desea enviar la señal USR1 al proceso "a.out", haga lo siguiente.

$ ps -C a.out
  PID TTY          TIME CMD
 3699 pts/1    00:00:00 a.out

$ kill -s USR1 3699

Nota :Consulte 4 formas de eliminar un proceso:kill, killall, pkill, xkill.

2. Enviar señal a un proceso desde otro proceso

Puede usar el sistema UNIX call kill (desde un programa C) para enviar señales de un proceso a otro. El siguiente fragmento de código C muestra cómo usar el comando matar.

La llamada al sistema Kill toma dos argumentos:1) el PID (ID del proceso) del proceso que debe señalarse 2) la señal que debe enviarse al proceso. El comando Kill devuelve 0 cuando tiene éxito.

int send_signal (int pid)
{
        int ret;
        ret = kill(pid,SIGHUP);
        printf("ret : %d",ret);

}

3. Enviar señal a un proceso desde el teclado

Cuando un proceso se está ejecutando en la terminal, puede enviar una señal a ese proceso desde el teclado usando alguna combinación específica de teclas. Los siguientes son un par de ejemplos.

  • SIGINT (Ctrl + C):ya lo sabe. Presionar Ctrl + C mata el proceso de primer plano en ejecución. Esto envía el SIGINT al proceso para matarlo.
  • Puede enviar una señal SIGQUIT a un proceso presionando Ctrl + \ o Ctrl + Y

Puede ver las asignaciones de teclas que envían una señal específica a un proceso mediante el comando "stty -a" como se muestra a continuación.

$ stty -a | grep intr
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;

Linux
  1. 30 ejercicios de procesos de Linux para administradores de sistemas

  2. Linux – Proceso de inicio:¿ancestro de todos los procesos?

  3. 4 formas de ejecutar un script de shell en UNIX/Linux

  4. Gestión de procesos en Ubuntu Linux

  5. Manejo de señales UNIX/Linux:SIGEV_THREAD

5 formas rápidas de matar un proceso en Linux

Supervisión de procesos en Linux

Linux frente a Unix

Comandos para la Gestión de Procesos en Linux

Cómo enviar procesos a segundo plano en Linux

¿Qué es un proceso detenido en Linux?