Todo lo que necesita saber sobre procesos en Linux [Guía integral]
- 4268
- 504
- Jaime Delgadillo
En este artículo, recorreremos una comprensión básica de los procesos y veremos brevemente cómo administrar los procesos en Linux utilizando ciertos comandos.
A proceso se refiere a un programa en ejecución; Es una instancia en ejecución de un programa. Está compuesto por la instrucción del programa, los datos leídos de los archivos, otros programas o la entrada de un usuario del sistema.
Tipos de procesos
Hay fundamentalmente dos tipos de procesos en Linux:
- Procesos en primer plano (también conocidos como procesos interactivos): estos se inicializan y controlan a través de una sesión terminal. En otras palabras, debe haber un usuario conectado al sistema para iniciar tales procesos; no han comenzado automáticamente como parte de las funciones/servicios del sistema.
- Procesos de fondo (también conocidos como procesos no interactivos/automáticos) son procesos no conectados a un terminal; No esperan ninguna entrada del usuario.
Que es demonios
Estos son tipos especiales de procesos de fondo que comienzan al inicio del sistema y siguen funcionando para siempre como un servicio; Ellos no mueren. Se inician como tareas del sistema (se ejecutan como servicios), espontáneamente. Sin embargo, un usuario los puede controlar a través del proceso de inicio.
Estado de proceso de LinuxCreación de un procesos en Linux
Normalmente se crea un nuevo proceso cuando un proceso existente hace una copia exacta de sí misma en la memoria. El proceso infantil tendrá el mismo entorno que su padre, pero solo el número de identificación del proceso es diferente.
Hay dos formas convencionales utilizadas para crear un nuevo proceso en Linux:
- Uso de la función System () - Este método es relativamente simple, sin embargo, es ineficiente y tiene significativamente ciertos riesgos de seguridad.
- Uso de la función FORK () y EXEC () - Esta técnica es un poco avanzada pero ofrece una mayor flexibilidad, velocidad, junto con la seguridad.
¿Cómo identifica los procesos de Linux??
Debido a que Linux es un sistema de usuarios múltiples, lo que significa que los diferentes usuarios pueden ejecutar varios programas en el sistema, cada instancia en ejecución de un programa debe ser identificada de manera única por el kernel.
Y un programa se identifica por su identificación de proceso (Pid) así como su identificación de procesos principales (Ppid), por lo tanto, los procesos se pueden clasificar en:
- Procesos para padres - Estos son procesos que crean otros procesos durante el tiempo de ejecución.
- Procesos para niños - Estos procesos son creados por otros procesos durante el tiempo de ejecución.
El proceso init
En eso El proceso es la madre (padre) de todos los procesos en el sistema, es el primer programa que se ejecuta cuando el sistema de Linux se inicia; administra todos los demás procesos en el sistema. Es iniciado por el núcleo mismo, por lo que, en principio, no tiene un proceso principal.
El proceso de inicio siempre tiene una identificación de proceso de 1. Funciona como un padre adoptivo para todos los procesos huérfanos.
Puedes usar el comando pidof Para encontrar la identificación de un proceso:
# Pidof Systemd # Pidof Top # Pidof HttpdEncontrar la identificación del proceso de Linux
Para encontrar la identificación del proceso y la ID de proceso principal del shell actual, ejecute:
$ Echo $$ $ ECHO $ PPIDEncuentra la identificación del proceso principal de Linux
Iniciar un proceso en Linux
Una vez que ejecute un comando o programa (por ejemplo, CloudCMD - CloudCommander), iniciará un proceso en el sistema. Puede iniciar un proceso de primer plano (interactivo) de la siguiente manera, se conectará al terminal y un usuario puede enviarlo:
# CloudCMDIniciar proceso interactivo de Linux
Trabajos de fondo de Linux
Para comenzar un proceso en segundo plano (no interactivo), use el Y
Símbolo, aquí, el proceso no lee la entrada de un usuario hasta que se mueve al primer plano.
# CloudCMD & # JobsIniciar el proceso de Linux en el fondo
También puede enviar un proceso al fondo suspendiéndolo usando [CTRL + Z]
, Esto enviará el Signo señal al proceso, deteniendo así sus operaciones; se vuelve inactivo:
# copia de seguridad de tar -cf.alquitrán /copias de seguridad /* #Press Ctrl+Z # trabajos
Para continuar ejecutando el comando arriba superpuesto en segundo plano, use el BG dominio:
# BG
Para enviar un proceso de fondo en primer plano, use el FG comandar junto con la identificación de trabajo como así:
# trabajos # fg %1Trabajos de proceso de fondo de Linux
También puede que le guste: Cómo iniciar el comando Linux en el fondo y separar el proceso en la terminal
Estados de un proceso en Linux
Durante la ejecución, un proceso cambia de un estado a otro dependiendo de su entorno/circunstancias. En Linux, un proceso tiene los siguientes estados posibles:
- Correr - Aquí se está ejecutando (es el proceso actual en el sistema) o está listo para ejecutarse (está esperando ser asignado a una de las CPU).
- Espera - En este estado, un proceso está esperando que ocurra un evento o para un recurso del sistema. Además, el núcleo también diferencia entre dos tipos de procesos de espera; Los procesos de espera interrumpibles, pueden ser interrumpidos por señales y procesos de espera ininterrumpidos, están esperando directamente en las condiciones de hardware y no pueden ser interrumpidos por ningún evento/señal.
- Interrumpido - En este estado, se ha detenido un proceso, generalmente recibiendo una señal. Por ejemplo, un proceso que se está depurando.
- Zombi - Aquí, un proceso está muerto, se ha detenido pero todavía tiene una entrada en la tabla de proceso.
Cómo ver los procesos activos en Linux
Existen varias herramientas de Linux para ver/listar procesos en ejecución en el sistema, los dos comandos PS y bien conocidos son PS y Top:
1. comando PS
Muestra información sobre una selección de los procesos activos en el sistema como se muestra a continuación:
# ps # ps -e | cabezaLista de procesos activos de Linux
2. Top - Herramienta de monitoreo del sistema
TOP es una herramienta poderosa que le ofrece una vista dinámica en tiempo real de un sistema en ejecución como se muestra en la captura de pantalla a continuación:
# arribaLista de procesos de ejecución de Linux
Lea esto para obtener más ejemplos de uso superior: 12 ejemplos de comando superiores en Linux
3. miradas - herramienta de monitoreo del sistema
miradas es una herramienta de monitoreo de sistemas relativamente nueva con características avanzadas:
# miradasMiradas - monitoreo de procesos de Linux
Para una guía de uso integral, lea: Glances: una herramienta avanzada de monitoreo del sistema en tiempo real para Linux
Hay varias otras herramientas útiles de monitoreo del sistema Linux que puede usar para enumerar los procesos activos, abra el siguiente enlace para leer más sobre ellas:
- 20 Herramientas de línea de comando para monitorear el rendimiento de Linux
- 13 Herramientas de monitoreo más útiles de Linux
Cómo controlar los procesos en Linux
Linux también tiene algunos comandos para controlar procesos como Kill, Pkill, PGREP y Killall, a continuación se muestran algunos ejemplos básicos de cómo usarlos:
$ PGREP -U TECMINT TOP $ KILL 2308 $ PGREP -U TECMINT TOP $ PGREP -U GLANCES DE TECMINT $ PKILL GLANCES $ PGREP -U TECMINT GISTASControl de procesos de Linux
Para aprender cómo usar estos comandos en profundidad, para matar/terminar procesos activos en Linux, abra los enlaces a continuación:
- Una guía para Kill, Pkill y Killall ordena para terminar la processora de Linux
- Cómo encontrar y matar procesos de ejecución en Linux
Tenga en cuenta que puede usarlos para matar aplicaciones que no respondan en Linux cuando su sistema se congela.
Enviar señales a los procesos
La forma fundamental de controlar procesos en Linux es enviando señales a ellos. Hay varias señales que puede enviar a un proceso, para ver todas las señales ejecutadas:
$ Kill -lEnumere todas las señales de Linux
Para enviar una señal a un proceso, use los comandos Kill, Pkill o PGREP que mencionamos anteriormente en. Pero los programas solo pueden responder a las señales si están programados para reconocer esas señales.
Y la mayoría de las señales son para uso interno por el sistema, o para programadores cuando escriben código. Las siguientes son señales que son útiles para un usuario del sistema:
- Suspiro 1 - enviado a un proceso cuando se cierra su terminal de control.
- Sigint 2 - enviado a un proceso por su terminal de control cuando un usuario interrumpe el proceso presionando
[Ctrl+C]
. - Sigquit 3 - enviado a un proceso si el usuario envía una señal de abandono
[CTRL+D]
. - Sigkill 9 - Esta señal termina (mata) inmediatamente un proceso y el proceso no realizará ninguna operación de limpieza.
- Sigter 15 - Esta es una señal de terminación del programa (Kill enviará esto por defecto).
- Sigtstp 20 - enviado a un proceso por su terminal de control para solicitar que se detenga (parada terminal); iniciado por el usuario presionando
[CTRL+Z]
.
Los siguientes son ejemplos de comandos de matar para matar la aplicación Firefox usando su PID una vez que se congela:
$ Pidof Firefox $ Kill 9 2687 o $ Kill -Kill 2687 o $ Kill -Sigkill 2687
Para matar una aplicación usando su nombre, use Pkill o Killall como así:
$ Pkill Firefox $ Killall Firefox
Cambiar la prioridad del proceso de Linux
En el sistema Linux, todos los procesos activos tienen prioridad y cierto valor agradable. Los procesos con mayor prioridad normalmente obtendrán más tiempo de CPU que los procesos de menor prioridad.
Sin embargo, un usuario del sistema con privilegios raíz puede influir en esto con el lindo y re bueno comandos.
Desde la salida del comando superior, el Ni muestra el proceso de buen valor:
$ topLista de procesos de ejecución de Linux
Utilizar el lindo comando establecer un buen valor para un proceso. Tenga en cuenta que los usuarios normales pueden atribuir un buen valor de cero a 20 a los procesos que poseen.
Solo el usuario de la raíz puede usar valores negativos agradables.
A re bueno la prioridad de un proceso, use el re bueno Comando de la siguiente manera:
$ Renice +8 2687 $ Renice +8 2103
Consulte nuestros artículos útiles sobre cómo administrar y controlar los procesos de Linux.
- Gestión de procesos de Linux: arranque, apagado y todo lo demás
- Encuentre los 15 mejores procesos mediante el uso de la memoria con 'superior' en modo lotes
- Encuentre los procesos de ejecución superior por el uso de memoria y CPU más alto en Linux
- Cómo encontrar un nombre de proceso usando el número PID en Linux
Eso es todo por ahora! ¿Tiene alguna pregunta o idea adicional, compártalas con nosotros a través del formulario de comentarios a continuación?.
- « Cómo realizar operaciones de autocuración y reequilibrar en el sistema de archivos Gluster-Parte 2
- Cómo habilitar el intercambio de escritorio en Ubuntu y Linux Mint »