GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Gestión de procesos en Ubuntu Linux

La gestión de procesos en Linux es un tema importante para aprender y comprender, ya que es un sistema operativo multitarea y tiene muchos procesos en curso al mismo tiempo. Linux proporciona muchas herramientas para administrar procesos, como enumerar procesos en ejecución, eliminar procesos, monitorear el uso del sistema, etc. En Linux, cada proceso está representado por su ID de proceso (PID). Hay algunos otros atributos para el proceso, como la identificación del usuario y la identificación del grupo, si un usuario o grupo ejecuta el proceso. A veces necesita eliminar o interactuar con un proceso, por lo que debe saber cómo administrar estos procesos para que su sistema funcione sin problemas. En Linux, los procesos se pueden administrar con comandos como ps, pstree, pgrep, pkill, lsof, top, nice, renice y kill, etc.

Procesos

La ejecución de una instancia de un programa se denomina proceso. En Linux, la identificación del proceso (PID) se usa para representar un proceso que es distintivo para cada proceso. Hay dos tipos de procesos,

  • Procesos en segundo plano
  • Procesos en primer plano

Procesos en segundo plano

Los procesos en segundo plano comienzan en la terminal y se ejecutan solos. Si ejecuta un proceso en la terminal, su resultado se mostrará en una ventana de la terminal y podrá interactuar con él, pero si no necesita interactuar con el proceso, puede ejecutarlo en segundo plano. Si desea ejecutar un proceso en segundo plano, simplemente agregue un signo "&" al final del comando y comenzará a ejecutarse en segundo plano; le ahorrará tiempo y podrá iniciar otro proceso. Para enumerar los procesos que se ejecutan en segundo plano, use el comando "trabajos". Mostrará todos los procesos en ejecución en segundo plano.

Por ejemplo, actualizar es un proceso largo en Linux. Toma demasiado tiempo, y si desea hacer otras cosas mientras el sistema se actualiza, use el comando en segundo plano.

[correo electrónico protegido]:~$ sudo apt-get upgrade -y &

Comenzará a ejecutarse en segundo plano. Y puedes interactuar con otros programas mientras tanto. Puede comprobar cuántos y qué procesos se están ejecutando en segundo plano escribiendo este comando.

[email protected]:~$ empleos
[1]+ Ejecutando sudo apt-get upgrade -y &

Procesos en primer plano

Todos los procesos que ejecutamos en la terminal se ejecutan, por defecto, como procesos en primer plano. Podemos gestionarlos mediante comandos en primer plano y en segundo plano.

Puede traer cualquier proceso en segundo plano enumerado en los trabajos al primer plano escribiendo el comando 'fg' seguido del número de proceso en segundo plano.

[correo electrónico protegido]:~$ fg %1
sudo apt-get upgrade -y

Y si quieres llevar este proceso a un segundo plano, escribe este comando.

[correo electrónico protegido]:~$ volumen %1

Listado y gestión de procesos con el comando ps

El proceso de listado con el comando ps es una de las formas más antiguas de ver los procesos en ejecución del terminal. Escriba el comando ps para enumerar qué procesos se están ejecutando y cuántos recursos del sistema están utilizando y quién los está ejecutando.

[email protected]:~$ ps u
PID DE USUARIO %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Jim 1562 0.0 0.0 164356 6476 tty2 Ssl+ 13:07 0:00 shell
Jim 1564 5.2 0.9 881840 78704 tty2 Sl+ 3:07 13:13 dauth
Jim 2919 0.0 0.0 11328 4660 pts/0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 R+ 17/0012 :19 0:00 pd
...recorte...

La columna de usuario muestra el nombre de usuario en la tabla anterior y PID muestra la identificación del proceso. Puede usar el PID para eliminar o enviar la señal de eliminación a un proceso. %CPU muestra el procesador de porcentaje de CPU y %MEM muestra el uso de memoria de acceso aleatorio. Para matar un proceso, escriba.

[correo electrónico protegido]:~$ matar [id del proceso (PID)]

o

[correo electrónico protegido]:~$ kill -9 [id del proceso (PID)]

Use el comando ps aux para ver todos los procesos en ejecución y agregue una canalización para verlos en orden.

[correo electrónico protegido]:~$ ps aux | menos

Si desea reorganizar las columnas, puede hacerlo agregando una bandera -e para enumerar todos los procesos y -o para indicar las columnas por palabras clave en el comando ps.

[email protected]:~$ps -eo pid,user,uid,%cpu,%mem,vsz,rss,comm
PID USER UID %CPU %MEM VSZ RSS COMMAND
1 root 0 0.1 0.1 167848 11684 systemed
3032 jim 1000 16.5 4.7 21744776 386524 cromo
…recorte…

Opciones para el comando ps.

La opción u se utiliza para enumerar los procesos de los usuarios.

[correo electrónico protegido]:~$ pd

La opción f se utiliza para mostrar la lista completa.

[correo electrónico protegido]:~$ pd

La opción x se usa para mostrar información sobre el proceso sin una terminal.

[correo electrónico protegido]:~$ pd x

La opción se utiliza para mostrar información ampliada.

[correo electrónico protegido]:~$ p.d.

se utiliza una opción para enumerar todos los procesos con el terminal.

[correo electrónico protegido]:~$ pd

La opción v se utiliza para mostrar el formato de memoria virtual.

[correo electrónico protegido]:~$ pv

Banderas para comando ps.

El indicador -e se usa para ver todos los procesos en el sistema.

[correo electrónico protegido]:~$ pd -e

El indicador -u se usa para ver los procesos que se ejecutan como root.

[correo electrónico protegido]:~$ pd -u

-f flag se utiliza para una lista completa de procesos.

[correo electrónico protegido]:~$ ps -f

El indicador -o se usa para listar los procesos en la columna deseada.

[correo electrónico protegido]:~$ ps -o
pstree

pstree es otro comando para listar los procesos; muestra la salida en un formato de árbol.

[correo electrónico protegido]:~$ pstree

Opciones para el comando pstree

-n se utiliza para ordenar procesos por PID.

[correo electrónico protegido]:~$ pstree -n

-H se utiliza para resaltar procesos.

[correo electrónico protegido]:~$ pstree -H [PID]
[correo electrónico protegido]:~$ pstree -H 6457

-a se utiliza para mostrar la salida, incluidos los argumentos de la línea de comandos.

[correo electrónico protegido]:~$ pstree -a

-g se utiliza para mostrar procesos por ID de grupo.

[correo electrónico protegido]:~$ pstree -g

-s se utiliza para la siembra del árbol o proceso específico.

[correo electrónico protegido]:~$ pstree -s [PID]
[correo electrónico protegido]:~$ pstree -s 6457

[nombre de usuario] se utiliza para mostrar procesos propiedad de un usuario.

[correo electrónico protegido]:~$ pstree [nombre de usuario]
[correo electrónico protegido]:~$ pstree jim
pgrep

Con el comando pgrep, puede encontrar un proceso en ejecución según ciertos criterios. Puede usar el nombre completo o la abreviatura del proceso para buscar o por nombre de usuario u otros atributos. El comando pgrep sigue el siguiente patrón.

[correo electrónico protegido]:~$ Pgrep [opción] [patrón]
[correo electrónico protegido]:~$ pgrep -u jim chrome
Opciones para el comando pgrep

-i se utiliza para buscar mayúsculas y minúsculas

[correo electrónico protegido]:~$ Pgrep -i firefox

-d se utiliza para delimitar la salida

[correo electrónico protegido]:~$ Pgrep -u jim -d:

-u se utiliza para encontrar procesos propiedad de un usuario

[correo electrónico protegido]:~$ Pgrep -u jim

-a se utiliza para listar procesos junto con sus comandos

[correo electrónico protegido]:~$ Pgrep -u jim -a

-c se utiliza para mostrar el recuento de procesos coincidentes

[correo electrónico protegido]:~$ Pgrep -c -u jim

-l se utiliza para listar procesos y su nombre

[correo electrónico protegido]:~$ Pgrep -u jim -l
pkill

Con el comando pkill, puede enviar una señal a un proceso en ejecución según ciertos criterios. Puede usar el nombre completo o la abreviatura del proceso para buscar o por nombre de usuario u otros atributos. El comando pgrep sigue el siguiente patrón.

[email protected]:~$ Pkill [Opciones] [Patrones]
[email protected]:~$ Pkill -9 chrome
Opciones para el comando pkill

–señal se utiliza para enviar una señal, p. SIGKILL, SIGTERM, etc.

[correo electrónico protegido]:~$ Pkill –signal SIGTERM vscode

-HUP se usa para recargar un proceso

[correo electrónico protegido]:~$ Pkill -HUP syslogd

-f se utiliza para eliminar procesos basados ​​en la línea de comandos completa.

[correo electrónico protegido]:~$ Pkill -f "ping 7.7.7.7"

-u se utiliza para eliminar todos los procesos propiedad de un usuario.

[correo electrónico protegido]:~$ Pkill -u jim

-i se utiliza para eliminar mayúsculas y minúsculas del proceso mediante pkill.

[correo electrónico protegido]:~$ Pkill -i firefox

-9 se usa para enviar una señal de muerte.

[correo electrónico protegido]:~$ Pkill -9 cromo

-15 se utiliza para enviar una señal de terminación.

[email protected]:~$ Pkill -15 vlc
lsof (Lista de archivos abiertos)

Esta utilidad de línea de comandos se utiliza para listar archivos abiertos por varios procesos. Y como sabemos, todos los sistemas UNIX/Linux reconocen todo como un archivo, por lo que es conveniente usar el comando lsof para listar todos los archivos abiertos.

[correo electrónico protegido]:~$ lsof

En la tabla anterior del comando lsof, FD representa la descripción del archivo, cwd representa el directorio de trabajo actual, txt significa archivo de texto, mem significa archivos asignados en memoria, mmap significa dispositivos asignados en memoria, REG representa un archivo normal, DIR representa Directorio, rtd significa directorio raíz. Hay otras opciones que puede usar con el comando lsof.

Opciones para el comando lsof.

-c se utiliza para la lista de archivos abiertos por su nombre de proceso.

[correo electrónico protegido]:~$ lsof -c cromo

-u se utiliza para la lista de archivos abiertos por un usuario.

[correo electrónico protegido]:~$ lsof -u jim

-i se utiliza para la lista de procesos que se ejecutan en un puerto.

[correo electrónico protegido]:~$ lsof -i

+D se utiliza para la lista de archivos abiertos en un directorio.

[correo electrónico protegido]:~$ lsof +D /inicio/

-p se utiliza para la lista de archivos abiertos por un proceso.

[correo electrónico protegido]:~$ lsof -p 1342

Listado y gestión de procesos con comando superior

Con el comando superior, puede mostrar una vista en tiempo real de los procesos del sistema en ejecución. Muestra los procesos dependiendo del uso de la CPU. Puede ordenar la columna según usted. El comando superior también proporciona información sobre su sistema, como cuánto tiempo ha estado funcionando el sistema o cuántos usuarios están conectados al sistema y cuántos procesos se están ejecutando, cuánta CPU y RAM se está utilizando y una lista de cada uno. proceso.

Escriba el comando top para enumerar los procesos que se están ejecutando.

[correo electrónico protegido]:~$ arriba

Tareas:291 en total, 1 en ejecución, 290 durmiendo, 0 detenido, 0 zombi

%Cpu(s):2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0st

MiB Mem:7880,6 en total, 1259,9 gratis, 3176 usados, 3444,4 mejorado/caché

Intercambio de MiB:2048.0 total, 2048.0 gratis, 0.0 usado. 4091.8 disponible Mem

PID USUARIO PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDO

3241 jim 20 0 20,7 g 33512 10082 S 1,7 4,2 0:54,24 cromo

3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 cromo

2920 jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 cromo

3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 cromo

3030 jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 cromo

3937 jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 cromo

1603 jim 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg

1756 jim 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 gnomo-s+

1898 jim 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 fusuma

3027 jim 20 0 587580 14304 75960 S 0.3 1.8 9:43.59 cromo

3388 jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 cromo

3409 jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 cromo

3441 jim 20 0 16,5 g 156396 89700 S 0,3 1,9 0:25,70 cromo

….recorte….

También puede realizar algunas acciones con el comando superior para realizar cambios en los procesos en ejecución; aquí está la lista a continuación.

  • tu al presionar "u" puede mostrar un proceso en ejecución por un determinado usuario.
  • M presionando "M" puede ordenar por uso de RAM en lugar de uso de CPU.
  • P presionando "P" puede ordenar por uso de CPU.
  • 1 presionando "1" cambia entre el uso de CPU si hay más de uno.
  • R presionando "R" puede hacer que su salida se ordene al revés.
  • h presionando "h" puede ir a la ayuda y presionar cualquier tecla para regresar.

Tenga en cuenta qué proceso está consumiendo más memoria o CPU. Los procesos que consumen más memoria se pueden eliminar y los procesos que consumen más CPU se pueden modificar para darles menos importancia al procesador.

Eliminar un proceso en la parte superior: Presiona k y escriba el ID del proceso que desea eliminar. Luego escriba 15 o 9 para matar normalmente o inmediatamente; también puede matar un proceso con un comando kill o killall.

Renice un proceso en la parte superior: Presiona r y escribe el PID del proceso que quieres que se renicie. Le pedirá que escriba el PID del proceso y luego el valor de Nicing que desea darle a este proceso entre -19 y 20 (-19 significa la mayor importancia y 20 significa la menor importancia).

Listado y gestión de procesos con System Monitor

Linux tiene un gnomo de monitor de sistema para mostrar los procesos en ejecución de forma más dinámica. Para iniciar el monitor del sistema, presione la tecla de Windows y escriba el monitor del sistema, haga clic en su icono y podrá ver los procesos en columnas. Al hacer clic con el botón derecho en ellos, puede eliminar, detener o renovar el proceso.

Los procesos en ejecución se muestran con cuentas de usuario en orden alfabético. Puede ordenar los procesos por cualquier encabezado de campo como CPU, Memoria, etc., simplemente haga clic en ellos y se ordenarán; por ejemplo, haga clic en CPU para ver qué proceso consume más potencia de CPU. Para administrar procesos, haga clic derecho sobre ellos y seleccione la opción que desea hacer con el proceso. Para gestionar el proceso seleccione las siguientes opciones.

  • Propiedades- mostrar otras configuraciones relacionadas con un proceso.
  • Mapas de memoria- mostrar mapas de memoria del sistema para mostrar qué biblioteca y otros componentes se utilizan en la memoria para el proceso.
  • Abrir archivo- muestra qué archivos abre el proceso.
  • Cambiar prioridad- muestra una barra lateral desde la que puede mejorar el proceso con las opciones de muy alto a muy bajo y personalizadas.
  • Detente- detiene el proceso hasta que seleccione continuar.
  • Continuar- reinicia un proceso en pausa.
  • Matar- Force mata un proceso instantáneamente.

Matar un proceso con kill y killall

kill, y el comando killall se usa para matar/finalizar un proceso en ejecución. Estos comandos también se pueden usar para enviar una señal válida a un proceso en ejecución, como decirle a un proceso que continúe, finalice o vuelva a leer los archivos de configuración, etc. Las señales se pueden escribir de ambas formas por números o por nombre. Las siguientes son algunas señales de uso común.

Descripción del número de señal

SIGHUP 1 Detecta la señal de colgado en el terminal de control.

SIGINT 2 Interpretado desde el teclado.

SIGQUIT 3 Salir desde el teclado.

SIGILL 4 Instrucciones ilegales.

SIGTRAP 5 Se utiliza para rastrear una trampa.

SIGABRT 6 se usa para cancelar la señal de abort(3).

SIGKILL 9 se utiliza para enviar una señal de eliminación.

SIGTERM 15 Se utiliza para enviar una señal de terminación.

SIGCONT 19,18,25 Se utiliza para continuar un proceso si se detiene.

SIGSTOP 17,19,23 Se utiliza para detener procesos.

Se utilizan diferentes valores de SIGCONT y SIGSTOP en diferentes sistemas operativos Unix/Linux. Para obtener información detallada sobre las señales, escriba el terminal de señal man 7.

Usando el comando kill para enviar la señal al proceso por PID.

Tenga en cuenta el proceso al que desea enviar una señal de finalización. Puede encontrar la identificación del proceso (PID) por ps o comando superior.

PID USUARIO PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDO

7780 jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 superior

El proceso superior consume el 33,3 % de la CPU. Si desea finalizar este proceso para ahorrar el uso de la CPU, aquí hay algunas formas de finalizar este proceso con el comando de eliminación.

[correo electrónico protegido]:~$ matar 7780

[correo electrónico protegido]:~$ matar -15 7780 o $ matar -SIGTERM 7780

[correo electrónico protegido]:~$ matar -9 7780 o $ matar -SIGKILL 7780

Uso del comando killall para enviar señales a un proceso por nombre.

Con el comando killall, no tiene que buscar la identificación del proceso; puede enviar una señal de finalización a un proceso por su nombre en lugar de la identificación del proceso. También puede eliminar más procesos de los que desea si no tiene cuidado, por ejemplo, "killall chrome" eliminará todos los procesos de Chrome, incluidos aquellos que no desea eliminar. A veces es útil eliminar procesos del mismo nombre.

Al igual que el comando kill, puede escribir las señales por nombre o por número en el comando killall. Elimine cualquier proceso en ejecución con el comando killall; solo tienes que teclear su nombre y la señal que quieres enviar. por ejemplo, envíe un proceso de señal de eliminación de firefox usando el comando killall, escriba el siguiente comando.

[correo electrónico protegido]:~$ killall -9 firefox

o

[correo electrónico protegido]:~$ killall SIGKILL cromo

Cambiando la prioridad del proceso con nice y renice

Cada proceso en su sistema Linux tiene un valor excelente, y está entre -19 y 20. Decidió qué proceso obtendría más acceso a la CPU en el sistema. Cuanto menor sea el valor de nice, más acceso tendrá un proceso al proceso de la CPU. Como -16 valores agradables tienen más acceso a la CPU que 18 valores agradables. Solo un usuario con privilegios de root puede asignar un valor negativo de agradable. Un usuario normal solo puede asignar el valor de "agradable" entre 0 y 19. Un usuario normal solo puede asignar valores agradables más altos y en sus propios procesos. Un usuario raíz puede establecer cualquier valor agradable para cualquier proceso.

Si desea brindar un proceso más accesible para el uso de la CPU mediante la asignación del valor agradable, escriba el siguiente comando.

[correo electrónico protegido]:~$ agradable +3 cromo

Y renueve el proceso

[correo electrónico protegido]:~$ renice -n -6 3612

Conclusión

Aquí está la guía para administrar su sistema Linux con ps, top, lsof, pstree, pkilll, kill, killall, nice, renice, etc. Algunos procesos consumen la mayor parte del uso de CPU y RAM; saber cómo administrarlos aumenta la velocidad y el rendimiento de su sistema y le brinda un mejor entorno para ejecutar cualquier proceso que desee de manera más eficiente.


Ubuntu
  1. Gestión de procesos en Linux con kill y killall

  2. Instalar Dropbox en Ubuntu 14.10

  3. 30 ejercicios de procesos de Linux para administradores de sistemas

  4. Linux – Proceso de inicio:¿ancestro de todos los procesos?

  5. MX Linux frente a Ubuntu

Supervisión de procesos en Linux

Procesos corriendo

Instalar AngularJS en Ubuntu 22.04 | 20.04Linux

Comprender los procesos en Linux

Comandos para la Gestión de Procesos en Linux

Cómo matar procesos Zombie en Ubuntu