En este artículo, discutiremos la gestión de procesos en Linux. Un proceso en Linux no es más que un programa en ejecución. Es una instancia en ejecución de un programa. Cualquier comando que ejecute inicia un proceso.
Tipos de Procesos en Linux
En Linux los procesos pueden ser de dos tipos:
- Procesos en primer plano
depender del usuario para la entrada
también llamados procesos interactivos.
- Procesos en segundo plano
ejecutar independientemente del usuario
denominados procesos automáticos o no interactivos
Estados de proceso en Linux
Un proceso en Linux puede pasar por diferentes estados después de que se crea y antes de que finalice. Estos estados son:
- Correr
- Dormir
- Sueño interrumpible
- Sueño ininterrumpido
- Detenido
- Zombie
- Un proceso en ejecución state significa que se está ejecutando o que está listo para ejecutarse.
- El proceso está en un dormido estado cuando está esperando que un recurso esté disponible.
- Un proceso en Sueño interrumpible se despertará para manejar las señales, mientras que un proceso en Sueño ininterrumpido no lo hará.
- Un proceso entra en un detenido Estado cuando recibe una señal de parada.
- Zombie el estado es cuando un proceso está muerto pero la entrada para el proceso todavía está presente en la tabla.
Diferentes Comandos para la Gestión de Procesos en Linux
Hay dos comandos disponibles en Linux para realizar un seguimiento de los procesos en ejecución. Estos dos comandos son Superior y Pd .
1. El mejor comando para administrar procesos de Linux
Para rastrear los procesos en ejecución en su máquina, puede usar el comando superior.
$ top
El comando superior muestra una lista de procesos que se ejecutan en tiempo real junto con su uso de memoria y CPU. Entendamos un poco mejor el resultado:
- PID :ID de proceso único otorgado a cada proceso.
- Usuario :Nombre de usuario del propietario del proceso.
- PR :Prioridad otorgada a un proceso durante la programación.
- NI: valor "agradable" de un proceso.
- VIRT :cantidad de memoria virtual utilizada por un proceso.
- RES :cantidad de memoria física utilizada por un proceso.
- SHR :cantidad de memoria compartida con otros procesos.
- S :estado del proceso
- 'D' =sueño ininterrumpido
- 'R' =corriendo
- 'S' =dormir
- 'T' =rastreado o detenido
- 'Z' =zombi
- %CPU :Porcentaje de CPU utilizado por el proceso.
- %MEM; Porcentaje de RAM utilizada por el proceso.
- TIEMPO+: Tiempo total de CPU consumido por el proceso.
- Comando :Comando utilizado para activar el proceso.
Puede utilizar las teclas arriba/abajo teclas de flecha para navegar hacia arriba y hacia abajo a través de la lista. Para salir presiona q . Para eliminar un proceso, resáltelo con las teclas de flecha arriba/abajo y presione 'k'.
Alternativamente, también puede usar el comando matar, que veremos más adelante.
2. comando ps
El comando ps es la abreviatura de 'Estado del proceso'. Muestra los procesos que se están ejecutando actualmente. Sin embargo, a diferencia del comando superior, la salida generada no es en tiempo real.
$ ps
La terminología es la siguiente:
PID | identificación del proceso |
TTY | tipo de terminal |
TIEMPO | tiempo total de ejecución del proceso |
CMD | nombre del comando que inicia el proceso |
Para obtener más información usando el comando ps, use:
$ ps -u
Aquí:
- %CPU representa la cantidad de poder de cómputo que está tomando el proceso.
- %MEM representa la cantidad de memoria que ocupa el proceso.
- STAT representa el estado del proceso.
Si bien el comando ps solo muestra los procesos que se están ejecutando actualmente, también puede usarlo para enumerar todos los procesos.
$ ps -A
Este comando enumera incluso aquellos procesos que actualmente no se están ejecutando.
3. Detener un proceso
Para detener un proceso en Linux, use la opción 'kill' dominio. El comando kill envía una señal al proceso.
Hay diferentes tipos de señales que puedes enviar. Sin embargo, el más común es 'kill -9' que es 'SIGKILL ‘.
Puede listar todas las señales usando:
$ kill -L
La señal predeterminada es 15, que es SIGTERM . Lo que significa que si solo usa el comando matar sin ningún número, envía la señal SIGTERM.
La sintaxis para matar un proceso es:
$ kill [pid]
Alternativamente, también puede usar:
$ kill -9 [pid]
Este comando enviará una señal 'SIGKILL' al proceso. Esto debe usarse en caso de que el proceso ignore una solicitud de eliminación normal.
4. Cambiar la prioridad de un proceso
En Linux, puede priorizar entre procesos. El valor de prioridad para un proceso se denomina valor de 'Agradabilidad'. El valor de amabilidad puede oscilar entre -20 a 19 .
La cuarta columna en la salida del comando superior es la columna del valor de amabilidad.
Para iniciar un proceso y darle un buen valor que no sea el predeterminado, use:
$ nice -n [value] [process name]
Para cambiar el valor agradable de un proceso que ya se está ejecutando, use:
renice [value] -p 'PID'
Conclusión
Este tutorial cubrió la gestión de procesos en Linux. Se cubrieron principalmente los aspectos prácticos de la gestión de procesos. En teoría, la gestión de procesos es un tema amplio y cubrirlo en su totalidad está fuera del alcance de este tutorial.