Administración de procesos en Ubuntu Linux

Administración de procesos en Ubuntu Linux
Administrar 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 de ejecución, matar procesos, monitorear el uso del sistema, etc. En Linux, cada proceso está representado por su ID de proceso (PID). Hay otros atributos al proceso, como ID de usuario y ID de grupo si un usuario o grupo ejecuta el proceso. A veces necesita matar 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 and Kill, etc.

Procesos

Ejecutar una instancia de un programa se llama proceso. En Linux, el ID de proceso (PID) se utiliza para representar un proceso que sea distintivo para cada proceso. Hay dos tipos de procesos,

  • Procesos de fondo
  • Procesos en primer plano

Procesos de fondo

Los procesos de fondo comienzan en la terminal y se ejecutan por sí mismos. Si ejecuta un proceso en el terminal, su salida se mostrará en una ventana de terminal y puede 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 los procesos de listado que se ejecutan en segundo plano, use el comando 'trabajos.'Mostrará todos los procesos en ejecución en segundo plano.

Por ejemplo, la actualización es un proceso largo en Linux. Toma demasiado tiempo, y si desea hacer otras cosas mientras el sistema está actualizando, use el comando de fondo.

ubuntu@ubuntu: ~ $ sudo apt -get actualización -y &

Comenzará a funcionar en segundo plano. Y puedes interactuar con otros programas mientras tanto. Puede verificar cuántos y qué procesos se ejecutan en segundo plano escribiendo este comando.

ubuntu@ubuntu: ~ $ Jobs
[1]+ Ejecutar la actualización de sudo apt -get -y &

Procesos en primer plano

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

Puede traer cualquier proceso de fondo que figura en los trabajos en primer plano escribiendo el comando 'FG' seguido del número de proceso de fondo.

ubuntu@ubuntu: ~ $ fg %1
sudo apt -get actualización -y

Y si desea llevar este proceso al tipo de fondo este comando.

ubuntu@ubuntu: ~ $ bg %1

Listado y administración de procesos con comando PS

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

ubuntu@ubuntu: ~ $ ps u
Usuario PID %CPU %MEM VSZ RSS TTY STAT TIME DE TIEMPO DE TIEMPO
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 3412 pts/0 r+ 17:19 0:00 ps u
... Snip ..

La columna de usuario muestra el nombre de usuario en la tabla anterior, y PID muestra la ID de proceso. Puedes usar el PID para matar o enviar la señal de matar a un proceso. El %de CPU muestra procesador porcentual de CPU, y %MEM muestra el uso de la memoria de acceso aleatorio. Para matar un proceso, escriba.

ubuntu@ubuntu: ~ $ Kill [ID de proceso (PID)]

o

ubuntu@ubuntu: ~ $ kill -9 [ID de proceso (PID)]

Use el comando PS aux para ver todos los procesos en ejecución y agregue una tubería para verlo en orden.

ubuntu@ubuntu: ~ $ ps aux | menos

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

ubuntu@ubuntu: ~ $ ps -eo Pid, ​​usuario, uid,%cpu,%mem, vsz, rss, comunicación
Usuario de PID UID %CPU %MEM VSZ RSS Comando
1 raíz 0 0.1 0.1 167848 11684 Sistema
3032 Jim 1000 16.5 4.7 21744776 386524 Chrome
... Snip ..

Opciones para el comando PS.

La opción U es utilizada para enumerar los procesos por los usuarios.

ubuntu@ubuntu: ~ $ ps u

La opción F se usa para mostrar la lista completa.

ubuntu@ubuntu: ~ $ ps F

X La opción se utiliza para mostrar información sobre el proceso sin un terminal.

ubuntu@ubuntu: ~ $ ps x

La opción E se utiliza para mostrar información extendida.

ubuntu@ubuntu: ~ $ ps e

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

ubuntu@ubuntu: ~ $ ps a

La opción V se usa para mostrar el formato de memoria virtual.

ubuntu@ubuntu: ~ $ ps v

Banderas para el comando PS.

-El indicador E se utiliza para ver cada proceso en el sistema.

ubuntu@ubuntu: ~ $ ps -e

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

ubuntu@ubuntu: ~ $ ps -u

-La bandera F se utiliza para una lista completa de procesos.

ubuntu@ubuntu: ~ $ ps -f

-o La bandera se utiliza para enumerar los procesos en la columna deseada.

ubuntu@ubuntu: ~ $ ps -o
pstree

Pstree es otro comando para enumerar los procesos; Muestra la salida en un formato de árbol.

Ubuntu@ubuntu: ~ $ Pstree

Opciones para el comando pstree

-norte se utiliza para la clasificación de procesos por PID.

ubuntu@ubuntu: ~ $ pstree -n

-H se utiliza para resaltar procesos.

ubuntu@ubuntu: ~ $ pstree -h [pid]
ubuntu@ubuntu: ~ $ pstree -h 6457

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

ubuntu@ubuntu: ~ $ pstree -a

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

ubuntu@ubuntu: ~ $ pstree -g

-s se usa para sembrar el árbol o el proceso específico.

ubuntu@ubuntu: ~ $ pstree -s [pid]
ubuntu@ubuntu: ~ $ pstree -s 6457

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

ubuntu@ubuntu: ~ $ pstree [nombre de usuario]
ubuntu@ubuntu: ~ $ pstree jim
pgrep

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

ubuntu@ubuntu: ~ $ pgrep [opción] [patrón]
ubuntu@ubuntu: ~ $ pgrep -u Jim Chrome
Opciones para el comando PGREP

-i se usa para buscar en el caso insensible

ubuntu@ubuntu: ~ $ pgrep -i Firefox

-d se usa para delimitar la salida

ubuntu@ubuntu: ~ $ pgrep -u jim -d:

-u se utiliza para encontrar el proceso propiedad de un usuario

ubuntu@ubuntu: ~ $ pgrep -u jim

-a se usa para procesos de listado junto con sus comandos

ubuntu@ubuntu: ~ $ pgrep -u jim -a

-C se usa para mostrar el recuento de procesos de coincidencia

ubuntu@ubuntu: ~ $ pgrep -c -u jim

-l se usa para procesos de listado y su nombre

ubuntu@ubuntu: ~ $ pgrep -u jim -l
pkill

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

ubuntu@ubuntu: ~ $ pkill [opciones] [patrones]
ubuntu@ubuntu: ~ $ pkill -9 Chrome
Opciones para el comando pkill

-señal se usa para enviar una señal e.gramo. Sigkill, Sigterm, etc.

ubuntu@ubuntu: ~ $ pkill --signal SigterM Vscode

-Hup se usa para recargar un proceso

ubuntu@ubuntu: ~ $ pkill -hup syslogd

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

ubuntu@ubuntu: ~ $ pkill -f “ping 7.7.7.7 "

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

ubuntu@ubuntu: ~ $ pkill -u jim

-i se utiliza para la muerte insensible del caso del proceso por Pkill.

ubuntu@ubuntu: ~ $ pkill -i firefox

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

ubuntu@ubuntu: ~ $ pkill -9 Chrome

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

ubuntu@ubuntu: ~ $ pkill -15 vlc
LSOF (lista de archivos abiertos)

Esta utilidad de línea de comandos se utiliza para enumerar los 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 enumerar todos los archivos abiertos.

ubuntu@ubuntu: ~ $ 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 mapeados de memoria, MMAP significa dispositivos mapeados de memoria, Reg representa un archivo regular, Dir representa el directorio, RTD Directorio raíz de medios. 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 nombre de su proceso.

ubuntu@ubuntu: ~ $ lSOF -c Chrome

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

ubuntu@ubuntu: ~ $ lSOF -u Jim

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

ubuntu@ubuntu: ~ $ lSOF -i

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

ubuntu@ubuntu: ~ $ lsof +d /home /

-pag se utiliza para la lista de archivos abiertos mediante un proceso.

ubuntu@ubuntu: ~ $ lsof -p 1342

Listado y administración del proceso con el comando superior

Con el comando superior, puede mostrar una vista en tiempo real de los procesos del sistema que se ejecutan. Muestra los procesos dependiendo del uso de la CPU. Puedes ordenar la columna según usted. El comando superior también proporciona información sobre su sistema, como cuánto tiempo se ha ejecutado 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án utilizando y una lista de cada uno. proceso.

Escriba el comando superior para enumerar los procesos que se ejecutan.

ubuntu@ubuntu: ~ $ top
Tareas: 291 Total, 1 en ejecución, 290 durmiendo, 0 detenido, 0 zombie
%CPU (s): 2.3us, 0.3Sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0
MIB MEM: 7880.6 Total, 1259.9 gratis, 3176 usado, 3444.4 Buff/Cache
Swap MIB: 2048.0 Total, 2048.0 gratis, 0.0 usado. 4091.8 disponible mem
PID user pr ni virtr res shr s %cpu %mem time+ comando
3241 Jim 20 0 20.7G 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 Chrome
3423 Jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 Chrome
3030 Jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 Chrome
3937 Jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 Chrome
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 GNOME-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 Chrome
3388 Jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 Chrome
3409 Jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 cromo
3441 Jim 20 0 16.5G 156396 89700 S 0.3 1.9 0:25.70 cromo
… .recorte… .

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

  • u Al presionar "U", puede mostrar un proceso que se ejecuta por cierto usuario.
  • METRO Al presionar "M", puede organizar el uso de RAM en lugar del uso de CPU.
  • PAG Al presionar "P", puede ordenar por uso de CPU.
  • 1 presionando el interruptor "1" entre el uso de las CPU si hay más de uno.
  • Riñonal Al presionar "R", puede hacer que su salida se reinsegre inversa.
  • H Al presionar "H", puede ir a ayudar y presionar cualquier tecla para devolver.

Tenga en cuenta qué proceso está consumiendo más memoria o CPU. Los procesos que están consumiendo más memoria pueden ser asesinados, y aquellos procesos que están consumiendo más CPU pueden ser renunciados para darles menos importancia al procesador.

Mata un proceso en la parte superior: Prensa k y escriba la identificación del proceso que quieres matar. Luego tipo 15 o 9 para matar normalmente o inmediatamente; También puedes matar un proceso con un comando matar o killall.

Renice un proceso en la parte superior: Prensa riñonal y escriba el PID del proceso que desea que se renueve. Le pedirá que escriba el PID del proceso y luego el valor de la que desea dar este proceso entre -19 a 20 (-19 significa la mayor importancia y 20 significa la más baja importancia).

Listado y administración de procesos con el monitor del sistema

Linux tiene un gnome de monitor de sistema para mostrar los procesos de ejecución de manera más dinámica. Para iniciar el monitor del sistema, presione la tecla Windows y escriba el monitor del sistema, haga clic en su icono y puede ver procesos en columnas. Al hacer clic con el botón derecho, puedes matar, detener o reniciar 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 clasificarán; Por ejemplo, haga clic en CPU para ver qué proceso está consumiendo la mayor potencia de la CPU. Para administrar procesos, haga clic derecho en ellos y seleccione la opción que desea hacer con el proceso. Para administrar 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 están utilizando en la memoria para el proceso.
  • Abrir documento- muestra qué archivos están abiertos por el proceso.
  • Prioridad de cambio- Muestre una barra lateral desde la que puede renunciar al proceso con las opciones de muy altas a muy bajas y personalizadas.
  • Detener- pausa el proceso hasta que seleccione para continuar.
  • Continuar- reinicia un proceso de pausa.
  • Matar- La fuerza mata un proceso al instante.

Matar un proceso con Kill y Killall

matar, y el comando killall se usa para matar/terminar un proceso de ejecución. Estos comandos también se pueden utilizar 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 archivos de configuración, etc. Las señales se pueden escribir en 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 colgar en el terminal de control.
Sigint 2 interpretado desde el teclado.
Sigquit 3 renuncia desde el teclado.
Sigill 4 Instrucciones ilegales.
SigTrap 5 se usa para rastrear una trazada.
Sigabrt 6 se usa para abortar la señal de abort (3).
Sigkill 9 se usa para enviar una señal de matar.
Sigterter 15 se usa para enviar una señal de terminación.
Sigcont 19,18,25 se usa para continuar un proceso si se detiene.
Sigstop 17,19,23 se utiliza para los procesos de detención.

Se utilizan diferentes valores de Sigcont y Sigstop en diferentes sistemas operativos de Unix/Linux. Para obtener información detallada sobre las señales, escriba Man 7 Terminal de señal.

Uso del comando Kill para enviar una señal para procesar por PID.

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

PID user pr ni virtr res shr s %cpu %mem time+ comando
7780 Jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 TOP

El proceso superior está consumiendo 33.3% de la CPU. Si desea matar este proceso para guardar el uso de la CPU, aquí hay algunas formas de terminar este proceso con el comando Kill.

ubuntu@ubuntu: ~ $ Kill 7780
ubuntu@ubuntu: ~ $ kill -15 7780 o $ kill -sigter 7780
ubuntu@ubuntu: ~ $ kill -9 7780 o $ kill -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 matar a un proceso por nombre en lugar de ID de proceso. También puede matar más procesos de los que quieres si no tienes cuidado, e.gramo., "Killall Chrome" matará todos los procesos de cromo, incluidos los que no quieres matar. A veces es útil matar procesos del mismo nombre.

Al igual que el comando matar, puede escribir las señales por nombre o por número en el comando killall. Mata cualquier proceso de ejecución con el comando killall; Solo tiene que escribir su nombre y la señal que desea enviar. mi.gramo., Envíe un proceso de señal de matar Firefox usando el comando killall, escriba el siguiente comando.

ubuntu@ubuntu: ~ $ killall -9 Firefox

o

ubuntu@ubuntu: ~ $ Killall Sigkill Chrome

Cambiar la prioridad del proceso con Niza y Renice

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

Si desea dar un proceso más accesible para el uso de la CPU asignando el valor de buen valor, escriba el siguiente comando.

ubuntu@ubuntu: ~ $ nice +3 Chrome

Y renice el proceso

ubuntu@ubuntu: ~ $ renice -n -6 3612

Conclusión

Aquí está la guía para administrar su sistema Linux con PS, Top, LSOF, PSTREE, PKILLL, KILLL, KILLALL, NICE, RENICE, etc. Algunos procesos consumen la mayor parte del uso de la CPU y la 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.