Formación informática

Java | Joomla | MySQL

Debian - Tema 10.3: Comandos de visualización de procesos

Veamos los principales comandos de visualización de procesos en un sistema GNU/Linux.

Administración procesos Debian

10.3.1. Informe del estado de los procesos

Función

Permite ver la lista de procesos del sistema, presentando una imagen simplificada de las estructuras del núcleo que administran los procesos. Extrae toda la información del pseudo-sistema de archivos /proc en el que el núcleo coloca toda la información respecto al estado del sistema en curso de ejecución. Es un comando con muchas opciones, que se pueden ver solicitando la ayuda del comando o en el manual. La información mostrada por este comando es:

%CPU       Porcentaje de tiempo de procesador utilizado desde el lanzamiento del comando.

%MEM     Porcentaja de uso de la memoria disponible.

CMD         Nombre del comando que originó el proceso.

GID           Identidad del grupo bajo el cual se ejecuta el proceso.

NI             Nivel de prioridad del proceso.

PID           Identificador del proceso

PPID         Identificador del proceso padre

RSS          Cantidad de memoria RAM utilizada, en KB.

STIME      Fecha de lanzamiento del proceso.

STAT        Estado del proceso, que está compuesto por tres caracteres:

  • Primer carácter, que indica el estado del proceso: Running (en ejecución), sTopped (parado), Sleeping (en espera de procesador), Device (dormido en espera de recurso) y Zombie (terminado).
  • Segundo carácter, que indica si el proceso se ha movido al espacio de paginación: si aparece una W se ha movido.
  • Tercer carácter, que indica la prioridad. Una N indica poca prioridad y un símbolo de menor que (<) mayor prioridad.

TIME        Tiempo total de uso de la CPU.

TT/TTY     Nombre del terminal al que está asociado el proceso.

UID           Identidad del usuario bajo la cual se ejecuta el proceso.

Se puede encadenar con el comando grep para extrae algunas líneas que contengan un patrón.

Sintaxis

ps –opción

Listado de opciones

Opción corta

Explicación

-A

Muestra todos los procesos.

-a

Muestra los procesos del terminal.

-e

Muestra todos los procesos, como –A.

-f

Muestra toda la información de cada proceso lanzado por el usuario conectado.

-p número

Muestra el proces o procesos uyo número coincide con el introducido.

u

Muestra información avanzado de cada proceso lanzado por el usuario conectado.

-x

Muestra los procesos no vinculados a un terminal, es decir, aquellos lanzados por comandos.

Para mostrar todos los procesos que están corriendo sin importer su origen:

josemariatc@curso:~$ ps –aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          1  0.0  0.1 110836  5188 ?        Ss   16:53   0:01 /sbin/init

root          2  0.0  0.0      0     0 ?        S    16:53   0:00 [kthreadd]

root          3  0.0  0.0      0     0 ?        S    16:53   0:00 [ksoftirqd/0]

root          5  0.0  0.0      0     0 ?        S<   16:53   0:00 [kworker/0:0H]

josemar+   1598  0.0  0.1  23432  5204 pts/0    Ss   17:11   0:00 bash

root       1622  0.0  0.0      0     0 ?        S    17:13   0:00 [kworker/0:1]

root       1639  0.0  0.0      0     0 ?        S    17:18   0:00 [kworker/0:2]

root       1649  0.0  0.0      0     0 ?        S    17:19   0:00 [kworker/1:1]

josemar+   1650  0.0  0.0  19104  2472 pts/0    R+   17:19   0:00 ps -aux

Comando ps Debian

10.3.2.. Obtener el PID de un proceso

Función

Nos permite obtener el número de identificación de un proceso cuyo nombre pasamos como argumento. Todos los criterios que pongamos tienen que coincidir para que devuelva el valor: patrón, usuario…

Sintaxis

pgrep [options] PATRÓN

Listado de opciones

Opción corta

Opción larga

Explicación

 

--signal SEÑAL

Define la señal a enviar a cada proceso que coincida con el patrón de búsqueda.

-c

--count

Muestra un número que coincide con el número de procesos lanzados coincidentes con el patrón.

-d

--delimiter DEL

Configura la cadena usada para delimitar cada proceso. Por defecto es una nueva línea.

-f

--full

El patrón busca en toda la línea del comando.

-l

--list-name

Muestra el nombre del proceso junto con su PID.

-a

--list-full

Muestra toda la línea del proceso.

-n

-newest

Seleciona el proceso más reciente que coincida con el patrón.

-o

--oldest

Seleciona el proceso más antiguo que coincida con el patrón.

-v

--inverse

Nos muestra los resultados no coincidentes con el patrón. Negación.

-x

--exact

Muestra sólo los resultados que coincidan exactamente con el patrón.

Así para listar todos los procesos llamados sshd que hayan sido lanzados por el usuario root;

pgrep -u root sshd

Y para listar los proceso que hayan sido lanzados por el usuario root o un demonio:

pgrep -u root,daemon

10.3.3. Visualización de procesos en tiempo de ejecución

Función

Permite visualizar la actividad del procesador en tiempo real, mostrando una lista que se actualiza de forma automática. Tiene las mismas columnas que el comando ps pero, además, nos permite modificar las columnas presentadas de forma interactiva, pulsando la tecla efe (f) y seleccionándola del menú. Para salir de este comando hay que pulsar la tecla q. Pulsando la tecla k, enviamos señales a los procesos cuando éstos están lanzados.

Este comando es interactivo y podemos cambiar su visualización mediante dos atajos de teclado:

  • Con Mayúsculas + R actulizamos los datos.
  • Con Mayúsuculas+Z se nos muestra una pantalla con opciones que nos permiten cambia el color.
Cambio de color comando TOP

Sintaxis

top –opciones

 Listado de opciones

Opción corta

Explicación

-d

Tiempo transcurrido entre actualizaciones, expresado en segundos.

-n

Número de veces que actualiza la información. Después, sale al terminal.

-o columna

Nos permite ordenar el resultado por la columna elegida: USEr, %CPU, MEM…

-u usuario

Muestra todos los procesos del usuario introducido como nombre

Así para mostrar el listado de procesos en ejecución y que se actulize cada tres segundos tendriámos que escrbir:

josemariatc@debian:~$ top -d 3

top - 17:35:09 up 41 min,  2 users,  load average: 0,02, 0,04, 0,08

Tasks: 141 total,   1 running, 140 sleeping,   0 stopped,   0 zombie

%Cpu(s):  0,3 us,  0,0 sy,  0,0 ni, 99,7 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st

KiB Mem:   4147620 total,   826316 used,  3321304 free,    35932 buffers

KiB Swap:  1376252 total,        0 used,  1376252 free.   290856 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                 

   530 root      20   0  262356  43104  18692 S   2,3  1,0   0:16.43 Xorg                                                    

  1594 josemar+  20   0  419748  29780  22300 S   0,7  0,7   0:03.89 gnome-terminal-                                         

  1660 root      20   0       0      0      0 S   0,3  0,0   0:00.16 kworker/0:2                                             

     1 root      20   0  110836   5188   3028 S   0,0  0,1   0:01.25 systemd                                                 

     2 root      20   0       0      0      0 S   0,0  0,0   0:00.00 kthreadd                                                

     3 root      20   0       0      0      0 S   0,0  0,0   0:00.24 ksoftirqd/0                                             

     5 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 kworker/0:0H                                            

     7 root      20   0       0      0      0 S   0,0  0,0   0:00.27 rcu_sched                                              

10.3.4. Árbol de procesos

Función

Permite mostrar los nombres de los procesos de forma jerárquica,  lo que nos permite conocer su filiación o parentesco al mostrarlo en forma de árbol.-

Sintaxis

pstree –opcion/es

Listado de opciones

Opción corta

Opción larga

Explicación

-a

--arguments

Muestra init primero, el resto hacia abajo y la derecha.

-c

--compact

No cerrar subárboles idénticos.

-h

--highlight-all

Destaca los procesos en curso de ejecución:

-H PID

--highlight-pid=PID

Muestra los proceso padres.

-l

--long

No corta líneas largas

-n

--numeric-sort

Ordenar por número de PID

-p

--show-pids   

Mostrar PIDs, implica –c.

-u

--uid-changes

Mostrar UID.

-U

--unicode

Usar UTF-8 (Unicode.

-V

--version

Muestra información sobre el commando.

PID   

 

Comienza con este PID; por defecto comienza en 1 (init)

USER  

 

Muetra el árbol de procesos para un usuario específico.

La forma más común de usar este commando es para mostrar los procesos que están corriendo econ líneas estilo ASCII y entre paréntesis el usuario:

josemariatc@debian:~$ pstree -AGu

systemd─┬─ModemManager─┬─{gdbus}

        │              └─{gmain}

        ├─NetworkManager─┬─dhclient

        │                ├─{NetworkManager}

        │                ├─{gdbus}

        │                └─{gmain}

        ├─VGAuthService

10.3.5. Parar un proceso usando el PID

Función

Permite terminar un proceso, enviando el número de proceso como argumento. Además nos sirve para enviar señales a los procesos. La señal por defecto es es matar; aunque pueden enviarse señales de parar un proceso o continuarlo.

Sintaxis

kill [-señal] pid/s

Listado de opciones

Opción corta

Opción larga

Explicación

-l

--list

Muestra un listado con todas las señales posibles.

Aquí está el listado completo de todas las señales que podemos enviar:

1) SIGHUP 2) SIGINT    3) SIGQUIT   4) SIGILL    5) SIGTRAP

 6) SIGABRT   7) SIGBUS    8) SIGFPE    9) SIGKILL   10) SIGUSR1

11) SIGSEGV   12) SIGUSR2   13) SIGPIPE   14) SIGALRM   15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD   18) SIGCONT   19) SIGSTOP   20) SIGTSTP

21) SIGTTIN   22) SIGTTOU   23) SIGURG    24) SIGXCPU   25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF   28) SIGWINCH  29) SIGIO 30) SIGPWR

31) SIGSYS    34) SIGRTMIN  35) SIGRTMIN+1     36) SIGRTMIN+2     37) SIGRTMIN+3

38) SIGRTMIN+4     39) SIGRTMIN+5     40) SIGRTMIN+6     41) SIGRTMIN+7     42) SIGRTMIN+8

43) SIGRTMIN+9     44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12     47) SIGRTMIN+13

48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13     52) SIGRTMAX-12

53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9     56) SIGRTMAX-8     57) SIGRTMAX-7

58) SIGRTMAX-6     59) SIGRTMAX-5     60) SIGRTMAX-4     61) SIGRTMAX-3     62) SIGRTMAX-2

63) SIGRTMAX-1     64) SIGRTMAX 

10.3.6. Parar un proceso usando el nombre

Función

Permite terminar un proceso, enviando el nombre de un comando como argumento. Cerrando todo lo relacionado con el mismo.

Sintaxis

killall [OPTION]... [--] NAME...

Listado de señales

SIGHUP      1     Hang Up. Es la señal que se envía cuando un usuario se desconecta del terminal, finalizando el proceso

SIGINT        2     Interrupción desde el teclado con la combinación Control+C. El comportamiento predeterminado es finalizar el proceso.

SIGQUIT     3     Salida por teclado con Control+\. Termina el proceso y guarda una copia del espacio de memoria en una archivo llamado core, muy útil para la depuración de aplicaciones.

SIGKILL      9     Ningún proceso puede ignorar esta señal, que termina inmediatamente el proceso sin proceder a ninguna operación de limpieza. Es la última opción a utilizar si un proceso no responde.

SIGTERM   15   Señal predeterminada del comando kill. Termina el proceso.

SIGCHLD    17   Señala a un proceso la parada o terminación de sus hijos.    

10.3.7. Cambiar la prioridad de un proceso

Función

Por defecto, todos los procesos se inician con la misma prioridad ante el CPU: 0. Con este comando se asignar una mayor o menor prioridad de ejecución cuando se lanzan, haciendo uso de una escala que va desde el -20, para la mayor prioridad, al 19, para la más baja. Solamente el root puede establecer prioridades negativas

Sintaxis

nice [OPCIÓN] [ORDEN [ARG]...]

Listado de opciones

Opción corta

Opción larga

Explicación

-n

--adjustment=N

Añade el entero N al valor `nice' (10 por omisión)

Así por ejemplo para lanzar un comando con una mayor prioridad de CPU tendríamos que escribir:

nice –n -10 comando

10.3.8. Cambiar la prioridad de un proceso en tiempo de ejecución

Función

Por defecto, todos los procesos se inician con la misma prioridad ante el CPU: 0. Con este comando se asignar una mayor o menor prioridad durante su ejecución, haciendo uso de una escala que va desde el -20, para la mayor prioridad, al 19, para la más baja. Solamente el root puede establecer prioridades negativas.

Sintaxis

renice [OPCIÓN] [ORDEN [ARG]...]

Listado de opciones

Opción corta

Opción larga

Explicación

-n

--adjustment=N

Añade el entero N al valor `nice' (10 por omisión)

Así por ejemplo para asignar una menor prioridad de CPU al proceso 1580 tendríamos que escribir:

renice 7 1580

10.3.9. Ejecutar procesos en segundo plano

Función

Cuando ejecutamos un proceso desde el terminal este se queda esperando hasta que el mismo termina. Si queremos que el proceso se ejecute en segundo plano y liberar el terminal para poder continuar usándolo tenemos que hacer uso del comando nohup o el operador &.

La forma más sencilla de usarlo es añadiendo el operador & a final del comando.

10.3.10. Listado de procesos en ejecución

Función

Muestra un listado de los procesos en curso de ejecución que han sido lanzados desde el terminal en el que se escribe.

Sintaxis

jobs [-lnprs] [jobspec ...]

jobs -x command [args]

10.3.11. Lanzar un proceso

10.3.11.1. En primer plano

Simplemente, escribimos el nombre del comando con sus eventuales opciones y/o argumentos.

10.3.11.2. En segundo plano

Añadimos al final de la línea de comando el carácter &

10.3.12. Formas de detener un proceso

Hay tres formas de detener prematuramente un proceso en primer plano:

  1. Escribir la combinación de teclas [Ctrl]+[c]. La señal 2 se envía al proceso de ejecución.
  2. Pulsar la combinación de teclas [Ctrl]+[\]. La señal 3 es enviada al proceso.
  3. Identificar el PID del proceso en otro terminal y lanzar el comando kill. Además, este es el único modo de detener un proceso en segundo plano.
 Debian - Tema 10.1-2: administración de procesos <- | ->  Debian - Tema 10.4: ejercicios resueltos sobre procesos 
   GNU/Linux - Temario

Escribir un comentario

Aunque los comentarios no expresan la opinión del administrador del sitio web, éste si que tiene una responsabilidad legal sobre lo que aparece. Por lo tanto, habrá una labor de moderación de los mensajes. No se permitirán mensajes ofensivos ni publicidad


Código de seguridad
Refescar

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-Ley 13/2012, de 30 de marzo. Si continúa navegando consideramos que acepta el uso de cookies. . Más información