Noticias Raspberry Pi

Cómo matar un proceso en Linux

Esta guía le mostrará cómo eliminar un proceso que se ejecuta en un sistema Linux.

Saber cómo matar un proceso en un sistema Linux es algo importante que aprender. Puede ayudarlo a resolver varios problemas, como detener una aplicación que no responde.

También es útil para detener aplicaciones que no están activas en su sesión de terminal actual o en la interfaz de su escritorio.

Estos pasos para eliminar procesos en Linux deberían funcionar para todas las distribuciones, incluidas CentOS, Debian y Ubuntu.

Vamos a explorar tres herramientas diferentes que puede utilizar para matar un proceso en Linux. Estas herramientas son «kill», «killall» y «pkill».

Cada una de estas herramientas tiene ligeras diferencias en su funcionamiento. Por ejemplo, el comando «kill» requiere el número de identificación del proceso (PID), pero el comando «pkill» puede matar un proceso según su nombre.

No es necesario ser un usuario root para eliminar un proceso en Linux. Si usted es el usuario que inició este proceso, puede eliminarlo sin elevar sus privilegios.

Señales de interrupción de Linux

Todos los comandos que vamos a mostrar hoy funcionan enviando una señal de detención al proceso. Hay una variedad de señales que usa el sistema Linux para terminar un proceso.

Cuando no especifica una señal, los comandos «kill», «killall» y «pkill» enviarán la señal 15 (SIGTERM) al proceso.

Hay dos señales en particular que probablemente usará para matar un proceso.

-SIGKILL (Código 9) – El uso de «SIGKILL» asegura que el sistema mata el proceso.

El kernel de Linux no esperará a que el proceso termine de manera segura y lo terminará de inmediato.

-SIGTERM (Código 15) -La señal «SIGTERM» intenta matar de forma segura el proceso especificado.

No hay garantía de que el proceso se detenga mientras esté en uso y es posible bloquear una señal «SIGTERM».

Si desea ver qué otras señales puede enviar al cerrar un proceso, puede ejecutar el siguiente comando.

A continuación se muestra una captura de pantalla de las señales de terminación del proceso disponibles en nuestro sistema Ubuntu.

Señales del proceso de eliminación de listas de Linux

Publicidad:

Puede pasar estas señales para matar comandos de varias formas.

Puede utilizar la referencia digital para la señal. Consulte la captura de pantalla anterior como referencia.

Cuando utilice el número de señal, utilice un guión (-) seguido del número. Por ejemplo, «-15» enviará un «SIGTERM».

También puede utilizar el nombre de los eventos de señal precedidos por “SIG”.

Por ejemplo, si quisiéramos enviar un evento SIGTERM, usaríamos un guión (-) seguido de «SIGTERM».

Cuando utilice el nombre del evento de señal, no es necesario que incluya el prefijo.

Si solo queremos enviar un evento SIGTERM, solo necesitamos usar la «parte TERM del nombre».

Por ejemplo, usaríamos un guión (-) seguido de «TERM» para enviar la señal de fin.

Ahora que tiene una idea de algunas de las señales de terminación de procesos compatibles con Linux, podemos pasar a mostrarle cómo usarlas.

Detener un proceso usando el comando kill

El primer comando para finalizar un proceso en Linux que le mostraremos es el comando «kill».

A continuación, hemos incluido la sintaxis básica para usar el comando kill en su sistema Linux.

Este comando requiere que conozca los ID de los procesos que desea matar.

Hay diferentes formas de obtener este ID, porque se muestra en varios lugares, incluidos los resultados producidos por el comando superior.

Ejemplo de uso del comando kill en Linux

1. Para esta sección, usaremos el comando “pidof” para obtener los ID de los procesos que queremos finalizar.

Todo lo que tenemos que hacer es pasar el nombre del proceso cuyas credenciales queremos obtener. pidof encontrará todos los procesos con el mismo nombre y devolverá todos sus ID.

Para este ejemplo, queremos obtener todas las ID del proceso NGINX que se ejecuta en nuestro dispositivo Linux.

2. A continuación se muestra un ejemplo de los identificadores que obtendrá con el comando «pidof».

Utilizará estas credenciales para finalizar los procesos de NGINX en curso en el siguiente paso.

3. Ahora que conocemos los ID de los procesos que queremos eliminar en nuestro sistema Linux, podemos continuar.

Como queremos finalizar estos procesos inmediatamente, usaremos el comando kill, seguido de la opción -SIGKILL, y luego las credenciales que queramos finalizar.

Detener procesos mediante el comando pkill

Si desea omitir el paso de obtener el ID de proceso del proceso que desea eliminar, puede usar el comando «pkill».

A diferencia del comando kill, el comando pkill le permite proporcionar el nombre del proceso que desea finalizar en su sistema Linux.

Hay algunas otras ventajas de usar el comando pkill, como el hecho de que también puede especificar el usuario al que pertenece el proceso y que desea eliminar.

A continuación se muestra una lista de algunas de las opciones que puede usar con el comando pkill.

-u NOMBRE DE USUARIO (–user NOMBRE DE USUARIO) – Coincide solo con los procesos que pertenecen al usuario especificado-x (–exact) – Asegúrese de que el nombre del proceso coincida exactamente con el patrón especificado-n (- más reciente) – Elimine el proceso más reciente que fue descubierto durante la búsqueda -u (–older) – Elimina el proceso más antiguo que coincide con el patrón de señal especificado – Esto le permite especificar la señal que se envía al proceso. Reemplace «señal» con el número o nombre de la señal.

Ejemplo de uso de pkill en un proceso

1. Para nuestro primer ejemplo, digamos que queremos eliminar el proceso NGINX que se ejecuta en nuestro sistema.

Todo lo que tendríamos que hacer es usar el siguiente comando, con pkill seguido de «nginx».

Además, si queremos MATAR este proceso, incluiremos “-SIGKILL” como opción.

El comando pkill ahora buscará un proceso llamado nginx y lo matará.

Tenga en cuenta que este comando solo completará la primera aparición si hay varias instancias del proceso.

2. El comando pkill tiene algunas opciones adicionales, como eliminar solo el proceso propiedad de un usuario específico.

Por ejemplo, si solo quisiéramos matar el proceso nginx propiedad de nuestro usuario TecnoPasion, podemos usar la opción «-u».

Mata procesos usando el comando killall

El último comando que seguiremos en esta guía es el comando «killall».

Este comando se diferencia en que está diseñado para finalizar todos los procesos que coincidan con las opciones especificadas. Esto es útil cuando necesita completar varios procesos al mismo tiempo.

La sintaxis básica del comando «killall» es la siguiente.

Para el uso más básico, todo lo que necesita saber es el nombre del proceso que desea eliminar.

Sin embargo, el comando killall tiene varias opciones que puede utilizar para configurar su comportamiento, como se muestra a continuación.

-e (–ignore-case) – Encuentra solo coincidencias exactas para el nombre de proceso que se especificó -I (–ignore-case) – Ignora las discrepancias entre mayúsculas y minúsculas al buscar un proceso por nombre.-i (–interactive) – Solicita confirmación al usuario antes de detener el proceso encontrado -u NOMBRE DE USUARIO (–usuario NOMBRE DE USUARIO) – Mata los procesos solo si son propiedad del usuario especificado. -V (–verbose) – Indica si la señal de terminación del proceso fue exitosa o no. -señal: especifica la señal que se enviará cuando finalice el proceso. Asegúrese de intercambiar «señal» con el número o nombre de la señal que desea enviar.

Ejemplo de uso de killall usando el nombre del proceso

Usando el comando killall es relativamente sencillo. Todo lo que necesita saber es el nombre del proceso.

1. Para nuestro primer ejemplo, apaguemos todos los procesos NGINX que se ejecutan en nuestro sistema Linux.

Como queremos que estos procesos se detengan inmediatamente, también especificamos la señal como «SIGKILL».

2. Si solo desea eliminar todos los procesos NGINX iniciados por un usuario específico, puede usar la opción -u.

Por ejemplo, digamos que tenemos un usuario llamado «TecnoPasion» que inició muchos procesos NGINX que queremos finalizar.

Podemos matar todos estos procesos en nuestro sistema Linux ejecutando el comando killall como se muestra a continuación.

3. También es posible usar killall para terminar todos los procesos propiedad de un usuario.

Esto es útil en los casos en los que necesita evitar que todo lo ejecute un usuario específico. Todo lo que necesita hacer es incluir la opción «-u» seguida del nombre del usuario.

Por ejemplo, para matar todos los procesos que posee nuestro usuario «TecnoPasion», podemos usar el siguiente comando.

Realiza un killall en función de la antigüedad del proceso.

El comando killall tiene características adicionales que le permiten terminar procesos en función de su antigüedad. Significa que puede eliminar procesos antiguos o recién iniciados.

Para hacer esto, hay dos opciones separadas que puede usar con el comando killall.

-o TIME (–holder-than TIME): solo coincide con los procesos que ocurrieron antes del tiempo especificado. especificado

El tiempo se especifica como una duración representada por un número seguido de una unidad para estas opciones.

Puede ver una lista de unidades compatibles con el comando killall a continuación.

s – Segundos – Minutos – Horas d – Días w – Semanas M – Moisy – Años

Por ejemplo, si quisiéramos matar todos los procesos NGINX que se han abierto en los últimos 15 minutos en nuestro sistema Linux, podemos usar el siguiente comando.

Del mismo modo, si quisiéramos terminar los procesos NGINX que se abrieron hace más de un año, podemos usar el comando a continuación.

Conclusión

Espero que este tutorial le haya mostrado cómo eliminar un proceso en su sistema Linux.

Puede usar una variedad de herramientas para lograr esto, y hemos cubierto tres de las más poderosas disponibles en Linux.

También explicamos rápidamente que hay una variedad de señales diferentes que puede enviar para completar un proceso.

Dos de las señales más importantes a utilizar son «SIGKILL», que finaliza inmediatamente un proceso y «SIGTERM», que permite finalizar un proceso de forma segura.

Tenga en cuenta que si tiene problemas para eliminar un proceso, deje un comentario a continuación.

También puede consultar algunos de nuestros otros tutoriales de Linux y guías de comandos de Linux.

Publicidad:

También puede gustarte...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *