Cómo matar un proceso de ejecución en Linux

Cómo matar un proceso de ejecución en Linux

Todo lo que se ejecuta en un sistema de Linux (un servicio, script o cualquier otra cosa, se considera un "proceso."Si necesita finalizar un proceso en ejecución en Linux, el matar El comando seguramente hará el trabajo.

En esta guía para los administradores de Linux, revisaremos el matar Comando de Linux y cómo usar sus diversas opciones para terminar o "matar", un proceso en ejecución en Linux.

En este tutorial aprenderás:

  • ¿Cómo funciona el mando de matar??
  • Cómo ver qué procesos se están ejecutando
  • Cómo matar un proceso de PID
  • Cómo matar un proceso que se niega a cerrar
  • Cómo matar un proceso por su nombre
Cómo matar un proceso de ejecución en Linux

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Ubuntu, Debian, Centos, Rhel, Fedora
Software Ninguno
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

¿Cómo funciona el mando de matar??

Con un nombre como "Kill", es posible que esta utilidad se use para finalizar inmediatamente un proceso. Mientras que esto es cierto, matar Solo funciona de esa manera cuando se usa con ciertas opciones. Por defecto, matar intentará detener un proceso con la mayor gracia posible.

En términos técnicos, matar envía un Siglo señal al proceso especificado, y eso instruye al proceso a apagar. Es una forma cortés de finalizar un proceso de ejecución y le da a la aplicación o tiempo de servicio para concluir primero, como terminar de escribir en archivos de registro, cerrar conexiones abiertas que fueron generadas por el proceso, etc.



El único problema con esto es que un programa obstinado puede ignorar el Siglo señal. Esto ocurre especialmente en un proceso que está congelado o "colgado." Sin embargo, matar se puede usar para enviar muchas señales diferentes a un proceso, e incluso puede obligar a las más obstinadas a cerrar con un Sigkill señal. Repasaremos estas opciones en la siguiente sección.

Lo importante para quitar de esta información es que, cuando sea posible, debe enviar una señal de signo ordinaria a un proceso que desea finalizar. Matando inmediatamente un servicio con un Sigkill La señal es efectiva cada vez y le dará resultados instantáneos, pero puede causar problemas futuros ya que el proceso no tuvo la oportunidad de cerrar correctamente.

Cómo ver qué procesos se están ejecutando

A cada proceso en Linux se le asigna una "ID de proceso" única, comúnmente abreviada como Pid En la terminal de Linux. A veces, conocer el PID de un proceso es necesario para terminarlo. Para ver una lista de procesos de ejecución y sus números PID correspondientes, use el PD dominio:

# ps -e 

Esto puede producir una gran cantidad de salida, porque incluso una nueva instalación de Linux puede tener bastantes procesos de ejecución, por lo que generalmente es mejor imponer este comando grep o más.

Para una vista más manejable:

# ps -e | Más -15 


O buscar un proceso específico (ssh en este ejemplo):

# ps -e | grep ssh 
Obtenga el PID de un proceso de ejecución

Otra forma útil de ver una lista de procesos de ejecución y sus PID es con el arriba dominio. A veces esto es aún más útil, ya que también muestra cuántos recursos del sistema están utilizando los procesos.

Vea el PID con el comando superior

Cómo matar un proceso de PID



Una vez que haya determinado el PID del proceso que desea finalizar, puede especificarlo como un argumento para el matar dominio. Por ejemplo, para terminar un proceso con un PID de 1234:

# matar 1234 

Este comando envía un Siglo señal y debería poder cerrar la mayoría de los procesos en un segundo o dos. Recuerda que puedes usar el PD comandar nuevamente para verificar que el proceso se haya cerrado con éxito.

# ps -e | GREP 1234 

Cómo matar un proceso que se niega a cerrar

Si se ha encontrado con un proceso terco que se niega a cerrar, puede emitir un Sigkill señal con el -9 opción matar.



# Kill -9 1234 

Solo recuerde usar esta opción con moderación, ya que no es la forma ideal de terminar un proceso (pero a veces tiene que hacerlo).

Normalmente, Siglo y Sigkill son probablemente las únicas dos señales que deberá usar, pero hay muchas otras que puede enviar con el matar dominio. El siguiente comando emitirá una lista completa:

# matar -l 
Una lista de las señales que Kill puede enviar

Es bueno al menos tener en cuenta las otras opciones, ya que algunos programas o scripts pueden recomendar su uso.

Como puede ver en la salida, Sigkill figura en el n. ° 9, por eso el -9 Switch envía el Sigkill señal. Especificar un número diferente para enviar su señal respectiva a un proceso.



Cómo matar un proceso por su nombre

Hay una forma más rápida de terminar un proceso que tener que buscar su PID cada vez. Utilizar el pkill comando y el nombre del proceso que desea matar. Por ejemplo, aquí es cómo matar a SSH:

# pkill ssh 

El pkill El comando es capaz de enviar diferentes señales, al igual que el regular matar dominio:

# pkill -9 ssh 

No se preocupe por obtener el nombre exacto del proceso, tampoco. Este comando mató un proceso llamado SSH-agent que se estaba ejecutando en nuestro sistema.



Hay un inconveniente para usar pkill en lugar de matar. Digamos que tienes dos procesos SSH en ejecución, 'SSH-Server' y 'SSH-agent'. Emisión del comando anterior con pkill va a terminar ambos procesos, incluso si solo pretendía terminar con el agente SSH.

También es un problema si tiene múltiples instancias de un script en ejecución, desde que se dice pkill Para terminar ese script va a terminar todas las instancias del script. Por otra parte, a veces este comportamiento puede ser preferible. Si necesita el control más granular, solo recuerde optar por el matar comandar en su lugar.

Conclusión

En este artículo, vimos cómo matar cualquier proceso que se ejecute en un sistema de Linux utilizando el matar dominio. Aprendimos a matar un proceso por su PID o por su nombre, junto con los pros y los contras de ambos métodos.

Con conocimiento del matar Comando y las mejores prácticas sobre cómo usarlo, tiene más control sobre los procesos que se ejecutan en su sistema. Esto es particularmente útil para los programas que "cuelgan" y se niegan a cerrar a veces.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Comandos básicos de Linux
  • Cómo propagar una señal a los procesos infantiles de una fiesta ..
  • Comandos de Linux: los 20 comandos más importantes que necesitas ..
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Descarga de Linux
  • Instale Arch Linux en VMware Workstation
  • Cómo imprimir el árbol de directorio usando Linux