Como todos sabemos, Linux es un sistema multitarea y multiusuario. Por lo tanto, permite que varios procesos operen simultáneamente sin interferir entre sí. El proceso es uno de los conceptos fundamentales importantes del sistema operativo Linux. Un proceso es una instancia en ejecución de un programa y lleva a cabo diferentes tareas dentro del sistema operativo.
Linux nos proporciona una utilidad llamada PD para ver información relacionada con los procesos en un sistema que es la abreviatura de “Estado del proceso”. El comando ps se usa para enumerar los procesos que se están ejecutando actualmente y sus PID junto con otra información que depende de las diferentes opciones. Lee la información del proceso de los archivos virtuales en / proc sistema de archivos. / proc contiene archivos virtuales, esta es la razón por la que se lo conoce como un sistema de archivos virtual.
ps proporciona numerosas opciones para manipular la salida de acuerdo con nuestras necesidades.
Sintaxis –
ps [options]
Opciones para el comando ps:
- Selección de proceso simple: Muestra los procesos para el shell actual –
[[email protected] ~]# ps PID TTY TIME CMD 12330 pts/0 00:00:00 bash 21621 pts/0 00:00:00 ps
El resultado contiene cuatro columnas de información.
Dónde,
PID – el ID de proceso único
TTY – tipo de terminal en el que el usuario ha iniciado sesión
TIEMPO – cantidad de CPU en minutos y segundos que el proceso se ha estado ejecutando
CMD – nombre del comando que inició el proceso.Nota – A veces, cuando ejecutamos PD comando, muestra la HORA como 00:00:00. No es más que el tiempo total de utilización de CPU acumulado para cualquier proceso y 00:00:00 indica que el kernel no ha dado tiempo de CPU hasta ahora. En el ejemplo anterior, encontramos que, para bash, no se ha dado tiempo de CPU. Esto se debe a que bash es solo un proceso padre para diferentes procesos que necesitan bash para su ejecución y bash en sí no está utilizando tiempo de CPU hasta ahora.
- Ver procesos: Ver todos los procesos en ejecución, use cualquiera de las siguientes opciones con ps –
[[email protected] ~]# ps -A [[email protected] ~]# ps -e
- Ver procesos no asociados con una terminal: Vea todos los procesos excepto los líderes de sesión y los procesos no asociados con una terminal.
[[email protected] ~]# ps -a PID TTY TIME CMD 27011 pts/0 00:00:00 man 27016 pts/0 00:00:00 less 27499 pts/1 00:00:00 ps
Nota – Puede estar pensando que ¿qué es el líder de la sesión? Una sesión única está asistiendo a cada grupo de procesos. Entonces, el líder de sesión es un proceso que da inicio a otros procesos. El ID de proceso del primer proceso de cualquier sesión es similar al ID de sesión.
- Ver todos los procesos excepto los líderes de sesión:
[[email protected] ~]# ps -d
- Ver todos los procesos excepto aquellos que cumplen las condiciones especificadas (niega la selección):
Ejemplo – Si desea ver solo el líder de la sesión y los procesos no asociados con una terminal. Entonces corre[[email protected] ~]# ps -a -N OR [[email protected] ~]# ps -a --deselect
- Ver todos los procesos asociados con esta terminal:
[[email protected] ~]# ps -T
- Ver todos los procesos en ejecución:
[[email protected] ~]# ps -r
- Ver todos los procesos de su propiedad: Procesos, es decir, el mismo EUID que ps, lo que significa que es el ejecutor del comando ps, root en este caso –
[[email protected] ~]# ps -x
Selección de proceso por lista
Aquí discutiremos cómo obtener la lista de procesos específicos con la ayuda del comando ps. Estas opciones aceptan un solo argumento en forma de una lista separada por espacios en blanco o por comas. Se pueden utilizar varias veces.
Por ejemplo: ps -p «1 2» -p 3,4
- Seleccione el proceso por el nombre del comando. Esto selecciona los procesos cuyo nombre ejecutable se da en cmdlist. Puede haber una posibilidad de que no conozca el ID del proceso y con este comando es más fácil de buscar.
Sintaxis: ps -C nombre_comandoSyntax : ps -C command_name Example : [[email protected] ~]# ps -C dhclient PID TTY TIME CMD 19805 ? 00:00:00 dhclient
- Seleccione por ID de grupo o nombre. El ID de grupo identifica el grupo del usuario que creó el proceso.
Syntax : ps -G group_name ps --Group group_name Example : [[email protected] ~]# ps -G root
- Ver por identificación de grupo:
Syntax : ps -g group_id ps -group group_id Example : [[email protected] ~]# ps -g 1 PID TTY TIME CMD 1 ? 00:00:13 systemd
- Ver proceso por ID de proceso.
Syntax : ps p process_id ps -p process_id ps --pid process_id Example : [[email protected] ~]# ps p 27223 PID TTY STAT TIME COMMAND 27223 ? Ss 0:01 sshd: [email protected]/2 [[email protected] ~]# ps -p 27223 PID TTY TIME CMD 27223 ? 00:00:01 sshd [[email protected] ~]# ps --pid 27223 PID TTY TIME CMD 27223 ? 00:00:01 sshd
Puede ver varios procesos especificando varios ID de proceso separados por un espacio en blanco o una coma:
Ejemplo :[[email protected] ~]# ps -p 1 904 27223 PID TTY STAT TIME COMMAND 1 ? Ss 0:13 /usr/lib/systemd/systemd --switched-root --system --d 904 tty1 Ssl+ 1:02 /usr/bin/X -core -noreset :0 -seat seat0 -auth /var/r 27223 ? Ss 0:01 sshd: [email protected]/2
Aquí, mencionamos tres ID de proceso: 1, 904 y 27223, que están separados por espacios en blanco.
- Seleccione por ID de proceso principal. Al usar este comando, podemos ver todos los procesos que pertenecen al proceso principal, excepto el proceso principal.
[[email protected] ~]# ps -p 766 PID TTY TIME CMD 766 ? 00:00:06 NetworkManager [[email protected] ~]# ps --ppid 766 PID TTY TIME CMD 19805 ? 00:00:00 dhclient
En el ejemplo anterior, ID de proceso 766 está asignado a NetworkManager y este es el proceso principal para dhclient con ID de proceso 19805.
- Ver todos los procesos pertenece a cualquier ID de sesión.
Syntax : ps -s session_id ps --sid session_id Example : [[email protected] ~]# ps -s 1248 PID TTY TIME CMD 1248 ? 00:00:00 dbus-daemon 1276 ? 00:00:00 dconf-service 1302 ? 00:00:00 gvfsd 1310 ? 00:00:00 gvfsd-fuse 1369 ? 00:00:00 gvfs-udisks2-vo 1400 ? 00:00:00 gvfsd-trash 1418 ? 00:00:00 gvfs-mtp-volume 1432 ? 00:00:00 gvfs-gphoto2-vo 1437 ? 00:00:00 gvfs-afc-volume 1447 ? 00:00:00 wnck-applet 1453 ? 00:00:00 notification-ar 1454 ? 00:00:02 clock-applet
- Seleccione por tty. Esto selecciona los procesos asociados con el tty mencionado:
Syntax : ps t tty ps -t tty ps --tty tty Example : [[email protected] ~]# ps -t pts/0 PID TTY TIME CMD 31199 pts/0 00:00:00 bash 31275 pts/0 00:00:00 man 31280 pts/0 00:00:00 less
- Seleccione por ID de usuario efectivo o nombre.
Sintaxis:
ps U nombre_de_usuario / ID
ps -U nombre_de_usuario / ID
ps -u nombre_usuario / ID
ps –nombre_de_usuario / ID de usuario
ps –user nombre_de_usuario / IDControl de formato de salida
Estas opciones se utilizan para elegir la información mostrada por ps. Hay varias opciones para controlar el formato de salida. Esta opción se puede combinar con cualquier otra opción como e, u, p, G, g etc, depende de nuestra necesidad.
- Usar -F para ver la lista en formato completo.
[[email protected] ~]$ ps -af tux 17327 17326 0 12:42 pts/0 00:00:00 -bash tux 17918 17327 0 12:50 pts/0 00:00:00 ps -af
- Usar -F para ver formato extra completo.
[[email protected] ~]$ ps -F UID PID PPID C SZ RSS PSR STIME TTY TIME CMD tux 17327 17326 0 28848 2040 0 12:42 pts/0 00:00:00 -bash tux 17942 17327 0 37766 1784 0 12:50 pts/0 00:00:00 ps -F
- Para ver el proceso de acuerdo con el formato definido por el usuario.
Syntax : [[email protected] ~]# ps --formate column_name [[email protected] ~]# ps -o column_name [[email protected] ~]# ps o column_name Example : [[email protected] ~]# ps -aN --format cmd,pid,user,ppid CMD PID USER PPID /usr/lib/systemd/systemd -- 1 root 0 [kthreadd] 2 root 0 [ksoftirqd/0] 3 root 2 [kworker/0:0H] 5 root 2 [migration/0] 7 root 2 [rcu_bh] 8 root 2 [rcu_sched] 9 root 2 [watchdog/0] 10 root 2
En este ejemplo, deseo ver el comando, la identificación del proceso, el nombre de usuario y la identificación del proceso principal, por lo que paso los argumentos cmd, pid, usuario y ppid respectivamente.
- Ver en formato de control de trabajos BSD:
[[email protected] ~]# ps -j PID PGID SID TTY TIME CMD 16373 16373 16373 pts/0 00:00:00 bash 19734 19734 16373 pts/0 00:00:00 ps
- Mostrar formato largo BSD:
[[email protected] ~]# ps l F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 904 826 20 0 306560 51456 ep_pol Ssl+ tty1 1:32 /usr/bin/X -core -noreset :0 -seat seat0 -auth /var/run/lightdm/root/:0 -noli 4 0 11692 11680 20 0 115524 2132 do_wai Ss pts/2 0:00 -bash
- Agrega una columna de datos de seguridad.
[[email protected] ~]# ps -aM LABEL PID TTY TIME CMD unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 19534 pts/2 00:00:00 man unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 19543 pts/2 00:00:00 less unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 20469 pts/0 00:00:00 ps
- Ver comando con formato de señal.
[[email protected] ~]# ps s 766
- Mostrar formato orientado al usuario
[[email protected] ~]# ps u 1 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 128168 6844 ? Ss Apr08 0:16 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
- Mostrar formato de memoria virtual
[[email protected] ~]# ps v 1 PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 1 ? Ss 0:16 62 1317 126850 6844 0.6 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
- Si desea ver el entorno de cualquier comando. Luego use la opción ** e ** –
[[email protected] ~]# ps ev 766 PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 766 ? Ssl 0:08 47 2441 545694 10448 1.0 /usr/sbin/NetworkManager --no-daemon LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
- Ver procesos que utilizan la memoria más alta.
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem
12 – imprimir un árbol de procesos
[[email protected] ~]# ps --forest -C sshd PID TTY TIME CMD 797 ? 00:00:00 sshd 11680 ? 00:00:03 _ sshd 16361 ? 00:00:02 _ sshd
- Enumere todos los hilos de un proceso en particular. Utilice el -T o -L opción para mostrar hilos de un proceso.
[[email protected] ~]# ps -C sshd -L PID LWP TTY TIME CMD 797 797 ? 00:00:00 sshd 11680 11680 ? 00:00:03 sshd 16361 16361 ? 00:00:02 sshd
Nota – Para obtener una explicación de los diferentes contenidos de las columnas, consulte página de manual.
Referencia: Página de manual
- Usar -F para ver la lista en formato completo.