Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Veamos qué significan cada una de las columnas que se muestran cuando ejecutamos el
comando ps.
En la imagen anterior observamos que hay dos procesos corriendo: el bash, que es el shell o
intérprete de comandos, y el comando ps.
-f devuelve un listado extendido. En este último caso veremos en pantalla el PPID del
proceso (identificador del proceso padre) y la hora en la que se ejecutó el proceso (STIME).
1
-ef obtendríamos un listado extendido de todos los procesos que se están ejecutando en el
sistema.
-u informa de los procesos lanzado por un determinado usuario. De tal forma que si
escribimos “ps -u milton”, aparecerá un listado de los procesos que está ejecutando el
usuario milton.
El comando pstree
El comando pstree visualiza, en forma de árbol, todos los procesos del sistema. Así
podemos ver las relaciones que existen entre los procesos.
El comando top
El comando top devuelve un listado de los procesos de forma parecida a como lo hace ps,
con la diferencia que la información mostrada se va actualizando periódicamente lo que nos
permite ver la evolución del estado de los procesos. Además, en la parte superior muestra
información adicional, como el espacio en memoria ocupado por los procesos, el espacio
ocupado por la memoria de intercambio o swap, el número total de tareas o procesos que se
están ejecutando, el número de usuarios o el porcentaje de uso del procesador.
Aunque el tema de las prioridades de los procesos lo trataremos más adelante, mientras el
comando top está en marcha podremos cambiar fácilmente la prioridad de los procesos. A
modo de resumen cada proceso en Linux tiene un nivel de prioridad que va de -20 (prioridad
más alta) hasta 20 (prioridad más baja). Cuanto mayor sea el nivel de prioridad, más
lentamente se ejecutará el proceso. ¿Y cómo podemos cambiar con top la prioridad de un
proceso? Muy sencillo. Con el comando top en marcha pulsamos la tecla „r‟. A continuación
introducimos el PID del proceso al que vamos a cambiar la prioridad, y acto seguido el nivel
de prioridad que vamos a asignar. Debemos tener en cuenta una consideración, solamente el
superusuario „root‟ puede asignar valores negativos a la prioridad de un proceso.
Los procesos pueden ejecutarse en primer plano o segundo plano. El proceso que está en
primer plano es aquel con el que se interactúa. Si ejecutamos, por ejemplo, el comando ls -l,
se mostrará por pantalla el resultado, y hasta que no acabe de mostrarse el listado no
podremos ejecutar ningún otro comando. En este caso el terminal permanece bloqueado, sin
poder introducir ningún otro comando, hasta que el proceso en primer plano termine.
Pondremos un proceso en segundo plano añadiendo el símbolo ampersand (&) al final del
comando. Cuando se ejecuta un proceso en segundo plano, se permite al usuario iniciar y
trabajar con otros procesos. Ejemplo:
$ sleep 10 &
Para ver que trabajos se están ejecutando en segundo plano, se usa el comando jobs.
El signo + seguido del número de trabajo entre corchetes indica el trabajo más reciente que
se está ejecutando. El signo menos indica el siguiente trabajo más reciente.
Para pasar procesos en segundo plano a primer plano, se utiliza el comando fg, seguido de
%n, donde n es el número de proceso que queremos pasar a primer plano. Por ejemplo, fg
%1 pondría en primer plano la tarea número 1. En la siguiente imagen se ejecuta sleep 80 en
segundo plano, y después pasa a primer plano con el comando fg.
El comando bg permite pasar procesos desde primer plano a segundo plano. Para pasar un
proceso que se encuentra en primer plano a segundo plano, debemos suspenderlo primero
utilizando la combinación de teclas Ctrl+Z. Cuando se pulsa esa combinación de teclas, el
proceso en ejecución se para y no vuelve a ejecutarse hasta que se pasa a primer o
segundo plano. Con bg pasaremos el proceso a segundo plano.
Cambiando la prioridad de los procesos
Podemos cambiar la prioridad de un proceso con el comando renice. Este comando admite
los siguientes parámetros/modificadores:
-g. Establece el nivel de prioridad de los procesos ejecutados por los miembros del
grupo especificado.
-u. Establece el nivel de prioridad de los procesos ejecutados por los miembros del
usuario especificado.
-p. Indica el nivel de prioridad para el proceso especificado.
Finalizar procesos
Para finalizar un proceso se utiliza el comando kill, que tiene la siguiente sintaxis:
Si, por ejemplo, queremos eliminar un proceso con PID 17122, tendríamos que escribir: kill
17122.Puede que en ocasiones el proceso no finalice al emplear el comando kill sin
parámetros. Para matar un proceso asegurándonos de que no ignorará la petición de finalizar
su ejecución se emplea el parámetro -9.
kill -9 17122
Hay un total de 32 señales que se pueden enviar a los procesos. Las más utilizadas son las
siguientes:
Por otra parte, el comando killall nombre_programa finaliza todos los procesos que estén
ejecutando el programa.
CONCLUSIONES:
Podemos concluir que si se tiene un buen manejo de la gestión de procesos en linux podemos
tener un mejor control y poder realizar cambios que puedan ayudar a optimizar los procesos
también podemos identificar procesos que tienen errores y repararlos, además de ver todo los
procesos que se están utilizando, comprobar el estado de los procesos y muchas ventajas mas
optimizando así el trabajo a realizar, estando a la vanguardia.
Así mismo si tenemos buenos procesos podemos mejorar y optimizar mucho más el trabajo
realizado con procesos optimizados y de alto estándar en la industria.
FUENTES :
https://w3.ual.es/~acorral/DSO/Tema_2.pdf
https://smaldone.com.ar/documentos/misdocs/tutorial-gnu-linux/index-7.html
https://manuelfrancoblog.wordpress.com/2017/02/01/procesos-en-linux/
http://es.tldp.org/Universitarios/seminario-1.html