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