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:0 4 ? 00:00:00 kworker/0:0H 5 ? 00:00:00 kworker/u256:0 6 ? 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 1 0 0 21:34 ? 00:00:03 /sbin/init maybe-ubiquity root 2 0 0 21:34 ? 00:00:00 [kthreadd] root 3 2 0 21:34 ? 00:00:00 [kworker/0:0] root 4 2 0 21:34 ? 00:00:00 [kworker/0:0H] root 6 2 0 21:34 ? 00:00:00 [mm_percpu_wq] root 7 2 0 21: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 -p 1234,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 bash 18396 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 1 0.0 0.2 78132 9188 ? Ss 21:34 0:02 /sbin/init maybe-ubiquity root 2 0.0 0.0 0 0 ? S 21:34 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I 21:34 0:00 [kworker/0:0] root 4 0.0 0.0 0 0 ? I< 21:34 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? I< 21:34 0:00 [mm_percpu_wq] root 7 0.0 0.0 0 0 ? S 21:34 0:00 [ksoftirqd/0] root 8 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_sched] root 9 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_bh] root 10 0.0 0.0 0 0 ? S 21:34 0: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 1508 0.0 2.2 1518156 90868 ? Ssl 21:34 0:03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock userkub+ 18429 0.0 0.0 13144 1108 pts/1 S+ 23:57 0: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 -p 4041 -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.