Cómo usar el comando ps en Linux para matar el proceso

Tecno AdictosActualizado
Comando Ps

Cuando está trabajando, a veces sus programas se congelan repentinamente. Otras veces, los programas aún se están ejecutando pero con un alto consumo de procesador o memoria. Hay una forma de solucionar este problema en Linux usando el ps (PAGproceso Status) comando. Aquí le mostramos cómo utilizar el ps comando en Linux para enumerar los procesos actualmente en ejecución y sus PID. A continuación, puede encontrar y eliminar los procesos que consumen sus recursos.

Usando el comando "ps"

La ps El comando se puede utilizar por sí solo. Producirá cuatro columnas de información:

  • PID: el identificador único del proceso definido por el sistema. Es el valor que usamos para detener un proceso.
  • TTY: terminal desde el que se inició el proceso.
  • HORA: la cantidad total de tiempo de CPU utilizado por el proceso.
  • CMD: comando que genera el proceso

Tenga en cuenta que cuando usa el comando sin opciones, no muestra mucha información. A continuación, se muestran algunas formas de hacerlo más útil.

1. Enumere el proceso de todos los usuarios

Cuando se instalan algunos programas, a veces también crean algunos usuarios adicionales para ejecutar el proceso. Para enumerar los procesos de los usuarios, utilice el -e opción:

ps-e

y su salida:

PID TTY          TIME CMD
1 ?        00:00:02 systemd
2 ?        00:00:00 kthreadd
3 ?        00:00:00 kworker/0:04 ?        00:00:00 kworker/0:0H
5 ?        00:00:00 kworker/u256:06 ?        00:00:00 mm_percpu_wq

2. Enumere el proceso con más información

Es posible tener más información cuando enumera el proceso en ejecución. Para hacer esto, puede usar el ef opción.

ps-ef

y su salida:

UID         PID   PPID  C STIME TTY          TIME CMD
root          10021:34 ?        00:00:03 /sbin/init maybe-ubiquity
root          20021:34 ?        00:00:00 [kthreadd]
root          32021:34 ?        00:00:00 [kworker/0:0]
root          42021:34 ?        00:00:00 [kworker/0:0H]
root          62021:34 ?        00:00:00 [mm_percpu_wq]
root          72021:34 ?        00:00:00 [ksoftirqd/0]

3. Filtrar el proceso por ID de proceso

Si conoce el ID de proceso del proceso en ejecución que desea mostrar, puede filtrarlo específicamente con el -p bandera. Esto puede tomar varios PID como argumentos, separados por una sola coma y sin espacios.

ps-ef-p1234,5678,9012

4. Enumere los procesos propiedad de un usuario.

También puede enumerar los procesos que son propiedad de un usuario con la u opción seguida del nombre del usuario:

ps-u userName

y su salida:

PID TTY          TIME CMD
2832 ?        00:00:00 systemd
2842 ?        00:00:00 (sd-pam)3043 ?        00:00:00 sshd
3044 pts/1    00:00:00 bash18396 pts/1    00:00:00 ps

5. Enumere los procesos activos

Es posible enumerar todos los procesos que están activos usando el ax opción:

ps-ax

y su salida:

PID TTY      STAT   TIME COMMAND
1 ?        Ss     0:02 /sbin/init maybe-ubiquity
2 ?        S      0:00 [kthreadd]3 ?        I      0:00 [kworker/0:0]4 ?        I<0:00 [kworker/0:0H]6 ?        I<0:00 [mm_percpu_wq]7 ?        S      0:00 [ksoftirqd/0]

6. Enumere los procesos activos con los usuarios.

Es posible enumerar todos los procesos activos con los usuarios cuando agrega el -aux bandera:

ps-aux

y su salida:

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          10.00.2781329188 ?        Ss   21:340:02 /sbin/init maybe-ubiquity
root          20.00.000 ?        S    21:340:00 [kthreadd]
root          30.00.000 ?        I    21:340:00 [kworker/0:0]
root          40.00.000 ?        I<21:340:00 [kworker/0:0H]
root          60.00.000 ?        I<21:340:00 [mm_percpu_wq]
root          70.00.000 ?        S    21:340:00 [ksoftirqd/0]
root          80.00.000 ?        I    21:340:00 [rcu_sched]
root          90.00.000 ?        I    21:340:00 [rcu_bh]
root         100.00.000 ?        S    21:340:00 [migration/0]

7. Filtrar el proceso por el nombre de un programa.

Es posible recuperar la información sobre un programa específico que se está ejecutando aplicando un filtro en el ps resultado:

ps-aux|grep docker

y su salida:

root       15080.02.2151815690868 ?       Ssl  21:340:03 /usr/bin/dockerd -H fd://--containerd=/run/containerd/containerd.sock
userkub+  184290.00.0131441108 pts/1    S+   23:570:00 grep--color=auto docker

Alternativamente, también puede utilizar el C opción para filtrar el proceso por su nombre:

ps-C name

8. Mostrar columnas específicas

Además de las cuatro columnas predeterminadas, puede obtener ps para mostrar una columna de información adicional. Por ejemplo:

ps-e-o pid,uname,pcpu,pmem,comm

La -o marca establece opciones de visualización de salida específicas para el ps resultados del comando. Ver una lista completa de opciones de visualización estándar para ps.

9. Mostrar resultados en estilo de árbol jerárquico

ps-e--forest

Esto usa arte ASCII para crear una estructura de estilo de árbol para mostrar procesos. Muestra los procesos bifurcados y secundarios como descendientes de los procesos principales adecuados, ordenándolos para que coincidan. Para ocultar las "ramas" del árbol, utilice -H en lugar de --forest.

10. Mostrar subprocesos de proceso

ps-p4041-L

La -L flag alterna en una pantalla enhebrada para cualquier funcionalidad de ps. Es más útil para rastrear los hilos de un proceso específico.

11. Mostrar todos los procesos raíz

ps-f-U root -u root

Realice una búsqueda de todos los procesos en ejecución con identificaciones de raíz reales y efectivas. Esto los muestra en formato completo, gracias a la -f bandera. Puedes combinarlo con el -o bandera para personalizar la salida.

Utilice el comando kill para detener un proceso

Una vez que haya localizado el proceso que se está comportando mal, puede usar el comando kill para eliminar un proceso que se está ejecutando. El comando envía una señal a un proceso que lo termina. Cuando sus programas están congelados, la mayoría de las veces tendrá que eliminarlos a la fuerza con el -9 opción.

La salida de ps es una vista instantánea. a diferencia de htop, No se actualiza a sí mismo de forma dinámica. Esto significa que es posible que deba ejecutarlo varias veces para obtener una imagen clara de qué proceso se está comportando mal. Para obtener una vista actualizada de los procesos, puede probar algunos otros comandos para el sistema Linux.

¿Te gustó este artículo?

Suscribite para recibir más contenido como este.

Vas a recibir un email para confirmar la suscripción. Podés darte de baja cuando quieras.