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 %1sudo apt-get upgrade -y
Y si quieres llevar este proceso a un segundo plano, escribe este comando.
[correo electrónico protegido]:~$ volumen %1Listado 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 uPID 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 | menosSi 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,commPID 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]:~$ pdLa opción f se utiliza para mostrar la lista completa.
[correo electrónico protegido]:~$ pdLa opción x se usa para mostrar información sobre el proceso sin una terminal.
[correo electrónico protegido]:~$ pd xLa 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]:~$ pdLa opción v se utiliza para mostrar el formato de memoria virtual.
[correo electrónico protegido]:~$ pvBanderas para comando ps.
El indicador -e se usa para ver todos los procesos en el sistema.
[correo electrónico protegido]:~$ pd -eEl 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 -fEl indicador -o se usa para listar los procesos en la columna deseada.
[correo electrónico protegido]:~$ ps -opstree
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 -lpkill
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
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 1342Listado 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]:~$ arribaTareas: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+ COMANDO7780 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 firefoxo
[correo electrónico protegido]:~$ killall SIGKILL cromoCambiando 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 cromoY renueve el proceso
[correo electrónico protegido]:~$ renice -n -6 3612Conclusió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.