A veces, matar un proceso es la única forma de deshacerse de él. A pesar del nombre severo, «matar» un proceso simplemente significa «obligarlo a abandonar». A continuación, le indicamos cómo hacerlo desde la línea de comandos de Linux o macOS.
La ejecución de programas como su navegador web, los procesos en segundo plano asociados con su entorno de escritorio y los servicios del sistema Linux son todos procesos.
Puede agrupar los procesos en dos grupos:
Si los procesos de primer plano son el frente del personal del teatro y los actores, los procesos de fondo son el equipo detrás del escenario «detrás de escena».
Cuando los procesos se comportan mal o funcionan mal, pueden acaparar demasiado tiempo de CPU, consumir su RAM o entrar en un ciclo computacional estrecho y dejar de responder. Las aplicaciones gráficas pueden negarse a responder a los clics del mouse. Es posible que las aplicaciones de terminal nunca lo devuelvan al símbolo del sistema.
«Matar» un proceso simplemente significa «forzar el cierre del proceso». Esto puede ser necesario si el proceso se niega a responder.
Linux proporciona las kill
, pkill
y killall
los comandos que le permite hacer precisamente eso. Estos comandos se pueden utilizar con cualquier tipo de proceso, gráfico o línea de comando, primer plano o fondo.
Para utilizarlo kill
, debe conocer el ID de proceso (PID) del proceso que desea finalizar. El ps
comando se puede utilizar para encontrar el PID de un proceso.
Para realizar una ps
búsqueda en todos los procesos, utilice la -e
opción (todos los procesos). less
Es aconsejable canalizar la salida , habrá bastante. Escriba ps
, un espacio, -e
un espacio |
(un carácter de barra vertical), otro espacio y luego escriba less
. Presione Enter para ejecutar el comando.
ps -e | Menos
Esto le dará una lista de procesos similar a la siguiente captura de pantalla. Puede buscar hacia adelante less
usando la /
tecla y puede buscar hacia atrás usando la ?
tecla.
Para el hogar en el proceso que le interesa, canalizar la salida de ps
través grep
y especificar el nombre o parte del nombre-del proceso.
ps -e | obturador grep
Una vez que haya localizado el PID del proceso que desea terminar, páselo al kill
comando como parámetro. Para terminar el shutter
proceso identificado por el comando anterior, use este comando:
matar 2099
El kill
comando es un asesino silencioso; no le da ningún comentario si tuvo éxito.
El pkill
comando le permite matar un proceso (o procesos) por su nombre. No es necesario identificar el proceso por PID. Para utilizarlo pkill
, proporcione un término de búsqueda que se pkill
utiliza para comparar con la lista de procesos en ejecución. Los procesos de emparejamiento finalizan. Por lo tanto, debe estar seguro de que ha escrito correctamente ese término de búsqueda.
Como red de seguridad, puede usar el pgrep
comando antes de usar el pkill
comando. El pgrep
comando también acepta un término de búsqueda. Enumerará el PID de cada proceso que coincide con el término de búsqueda. Esto es seguro porque pgrep
no emitirá ninguna señal de interrupción a los procesos, y si escribe mal el término de búsqueda, no eliminará otro proceso por error. Puede asegurarse de haber pensado correctamente el término de búsqueda antes de pasarlo a pkill
. Ambos pkill
y pgrep
tratan el término de búsqueda de la misma manera. Su tratamiento es tan similar que comparten la misma página de manual .
Supongamos que hay un proceso con «subq» en su nombre. Usaremos el ps -u dave | grep
comando para echar un vistazo detrás de la cortina. Puede ver que «subq» coincidirá con ese proceso y solo con ese proceso. Eso fue solo para que puedas ver el nombre completo del proceso.
ps -u dave | grep subq
Supongamos que nuestro usuario no ha hecho eso; todo lo que saben es que el nombre del proceso contiene la subcadena «subq». Suelen pgrep
comprobar que solo hay una coincidencia con el término de búsqueda. Luego usan ese término de búsqueda con pkill
.
pgrep subq
pkill subq
Puede usar pkill
para matar varios procesos a la vez. Aquí el usuario corre pgrep
para comprobar cuántos procesos ha iniciado Chrome. Solían pkill
matarlos a todos. Luego verifican pgrep
que se hayan eliminado todos.
cromo pgrep
pkill chrome
cromo pgrep
Si se están ejecutando varios procesos con el mismo nombre, pero no desea eliminarlos a todos, puede usar pgrep
con la -f
opción (línea de comando) para identificar qué proceso es cuál. Un ejemplo simple serían dos ping
procesos. Quieres matar a uno de ellos pero no al otro. Puede usar sus líneas de comando para distinguir entre ellos. Tenga en cuenta el uso de comillas para ajustar el parámetro de la línea de comandos.
pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"
Advertencia : En los sistemas operativos Solaris y OpenIndiana, el killall
comando matará todos los procesos que le pertenecen . Si es root o si lo ha emitido sudo killall
, ¡reiniciará su computadora! Durante la investigación para este artículo, este comportamiento se confirmó con la última versión de OpenIndiana Hipster 2018.10.
El killall
comando opera de manera similar al pkill
comando pero con una diferencia específica. En lugar de pasar un término de búsqueda al comando, debe proporcionar el nombre exacto del proceso.
No puede proporcionar una coincidencia parcial con el nombre de un proceso; debe proporcionar el nombre completo del proceso, como se muestra:
killall shutt
obturador killall
La -y
opción (menor que) le permite eliminar procesos que se han estado ejecutando durante menos de un período especificado. El período se indica en números seguidos de una de estas unidades:
Para eliminar un proceso llamado ana
que se acaba de iniciar y dejar las instancias anteriores en ana
ejecución, puede usar los siguientes parámetros con killall
, si reaccionó en dos minutos:
killall -y 2m ana
La -o
opción (anterior a) le permite eliminar procesos que se han estado ejecutando durante más de un período especificado. Este comando eliminará todas las ssh
conexiones que se hayan ejecutado durante más de un día:
killall -o 1d sshd
Estos comandos le permitirán identificar y finalizar procesos erróneos con precisión y seguridad correctamente.
Sea siempre cauteloso. Primero, asegúrese de que el proceso que está a punto de finalizar sea realmente el que desea. En segundo lugar, verifique dos veces: tenga cuidado y asegúrese de que el proceso objetivo sea el que desea finalizar. Continúe con la finalización del proceso una vez que esté satisfecho.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…