Saltar al contenido

comando ps en Linux con ejemplos

octubre 2, 2021
gfg 200x200 min

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:

  1. 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.

  2. 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
    
  3. 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.

  4. Ver todos los procesos excepto los líderes de sesión:
    [[email protected] ~]# ps -d
    
  5. 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
    
  6. Ver todos los procesos asociados con esta terminal:
    [[email protected] ~]# ps -T
    
  7. Ver todos los procesos en ejecución:
    [[email protected] ~]# ps -r
    
  8. 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

  1. 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_comando
    Syntax :
    ps -C command_name
    
    Example :
    [[email protected] ~]# ps -C dhclient
      PID TTY          TIME CMD
    19805 ?        00:00:00 dhclient
    
  2. 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
    
  3. 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
    
  4. 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.

  5. 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.

  6. 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
    
  7. 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
    
  8. 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 / ID

    Control 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.

    1. 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
      
    2. 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
      
    3. 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.

    4. 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
      
    5. 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
      
    6. 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
      
    7. Ver comando con formato de señal.
      [[email protected] ~]# ps s 766
      
    8. 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
      
    9. 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
      
    10. 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
      
    11. 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
      
    12. 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

close