Cuando está trabajando, a veces sus programas se congelan repentinamente. Otras veces, los programas siguen ejecutándose pero con un alto consumo de procesador o memoria. Hay una manera de arreglar esto en Linux usando el ps
(PAGSproceso Sestado) comando. Aquí te mostramos cómo usar el ps
Comando en Linux para enumerar los procesos que se están ejecutando actualmente y sus PID. Luego puede encontrar y eliminar los procesos que consumen sus recursos.
Usando el comando «ps»
los ps
El comando se puede usar solo. Dará salida a 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 la que se inició el proceso.
- TIEMPO: 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 ninguna opción, no le muestra mucha información. Aquí hay algunas maneras de hacerlo más útil.
1. Listar 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:
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. Listar proceso con más información
Es posible tener más información cuando enumera el proceso en ejecución. Para ello, puede utilizar el ef
opción.
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 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.
4. Listar los procesos propiedad de un usuario
También puede enumerar los procesos que son propiedad de un usuario con el u
opción seguida del nombre del usuario:
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. Listar los procesos activos
Es posible listar todos los procesos que están activos usando el ax
opción:
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. Listar los procesos activos con los usuarios
Es posible enumerar todos los procesos activos con los usuarios cuando agrega el -aux
bandera:
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. Filtra 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:
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:
8. Mostrar columnas específicas
Además de las cuatro columnas predeterminadas, puede obtener ps
para mostrar una columna adicional de información. Por ejemplo:
ps -e -o pid,uname,pcpu,pmem,comm
los -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
Esto utiliza arte ASCII para crear una estructura de estilo de árbol para mostrar procesos. Muestra los procesos secundarios y bifurcados como descendientes de los procesos principales apropiados, ordenándolos para que coincidan. Para ocultar las «ramas» del árbol, use -H
en lugar de --forest
.
10. Mostrar subprocesos de proceso
los -L
La bandera alterna en una pantalla con hilos para cualquier funcionalidad de ps. Es más útil al rastrear los subprocesos de un proceso específico.
11. Mostrar todos los procesos raíz
Ejecute una búsqueda de todos los procesos que se ejecutan con identificaciones raíz reales y efectivas. Esto los muestra en el formato de larga duración, gracias a la -f
bandera. Puedes combinarlo con el -o
marca para personalizar la salida.
Use el comando kill para detener un proceso
Una vez que haya localizado el proceso que se está comportando mal, puede usar el comando matar para matar un proceso que se está ejecutando. El comando envía una señal a un proceso que lo finaliza. Cuando sus programas están congelados, la mayoría de las veces necesitará matarlos a la fuerza con el -9
opción.
La salida de ps es una vista instantánea. A diferencia de htop
, No se actualiza dinámicamente. 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 otros comandos para el sistema Linux.