viernes, 13 de septiembre de 2024

Las señales del pingüino asesino

Los más avanzados en GNU/Linux ya habéis imaginado que de lo que voy a hablar es del comando kill, mediante el cual podemos mandar mensajes a los diversos procesos que se están ejecutando en nuestro sistema.

Lo primero es identificar el proceso al que vamos a mandar una señal, para ello ejecutamos el comando

ps aux

Pero si lo ejecutamos así nos vamos a peder entre todos los procesos, imaginemos que queremos interactuar en algún programa, por ejemplo, kodi, pa

usuario      180914  0.0  0.0   2608  1700 ?        S    01:29   0:00 /bin/sh /usr/bin/kodi
usuario      180924 81.5  3.9 3016212 316192 ?      SLl  01:29   0:08 /usr/lib/x86_64-linux-gnu/kodi/kodi-x11
usuario      181112  0.0  0.0  11528   720 pts/0    S+   01:29   0:00 grep --color=auto kodi

En la segunda columna aparece el número de proceso, sobre la que podemos interactuar con la siguiente sintaxis.

kill -numeroonombredeseñal numerodeproceso 

El número o nombre de señal es opcional y por defecto es 15 que significa que queremos que se cierre ordenadamente, podría ser uno de estos dos comandos si queremos interactuar sobre el primer proceso de kodi:

kill  180914

ó

kill -15 180914

Supongamos que no se cierra, entonces tendríamos que mandar la señal del cerrado forzado:

kill -9 180914

Pero a pesar del nombre del comando no solo sirve para matar procesos, también los podemos cosas poner en pausa y reanudarlos a continuación, por ejemplo, supongamos un proceso de reproducción de un audio con VLC, lo primero es averiguar el primer número de proceso con el comando:

ps aux | grep -i vlc

usuario      189886  6.2  1.0 1704216 86284 ?       Sl   01:45   0:02 /usr/bin/vlc --started-from-file /home/usuario/audio.mp3
usuario      190291  0.0  0.0  11528   716 pts/1    S+   01:45   0:00 grep --color=auto -i vlc

Pausamos con el comando:

kill -STOP 189886

Seguiríamos haciendo nuestras cosas y ya no nos acordaríamos el número del proceso que está detenido algo que podemos saber simplemente tecleando:

jobs

Y para reanudarlo simplemente ejecutamos:

kill -CONT 189886

Podemos obtener el listado completo de señales disponibles con el comando:

kill -l


Fuentes:

No hay comentarios:

Publicar un comentario