Gestión de Procesos en Linux: PID, Prioridades y Control de Trabajos

1. ¿Qué es el PID de un proceso en GNU/Linux?

El PID es un número único asignado a cada proceso en ejecución en GNU/Linux para identificarlo y gestionarlo de manera eficiente.

2. ¿Qué diferencia hay entre la opción -a y la opción -x de la orden ps?

La opción -a muestra todos los procesos de todos los usuarios, excepto los procesos que no están asociados a una terminal.

La opción -x muestra todos los procesos, incluidos aquellos que no están asociados a una terminal, como los procesos en segundo plano.

3. ¿Qué es el número NICE de un proceso? ¿Qué valores puede tomar el parámetro NICE? ¿Qué usuarios pueden cambiar este parámetro?

El número NICE permite iniciar un proceso con una determinada prioridad. Los valores que puede tomar van desde -20 (prioridad más alta) hasta +19 (prioridad más baja). Solamente el usuario root puede cambiar las prioridades.

4. Listar todos los archivos que contengan la cadena «.jpg» dentro de la estructura de directorios del sistema. Usar la orden ls y grep.

ls -R | grep ".jpg" // ps aux | grep .jpg

5. Ejecutar otra vez la orden anterior, pero esta vez con la prioridad más baja posible.

nice -n 19 ls // nice -n 19 ls -R | grep "/.jpg"

6. Abrir otro terminal, y mientras la orden anterior se ejecuta, mediante la orden ps listar todos los procesos asociados al terminal del usuario actual y obtener el PID del proceso ls. Con la orden renice otorgar la máxima prioridad a la orden ls. Después con la orden kill terminar el proceso de la manera “más correcta” posible.

nice -n 19 ls -R | grep "/.jpg" &

ps aux | grep "ls"

renice -20 <PID>

kill <PID>

7. Visualizar mediante el editor vi el archivo que contiene la información de los usuarios del sistema. Ejecutar el programa vi con la máxima prioridad posible.

sudo nice -n -20 vi /etc/passwd (PID del editor vi) // pstree -p | grep vi obtenemos su proceso padre

9. Mediante la orden top establecer una prioridad normal al editor vi y después terminar el proceso del editor.

Primero de todo poner el comando sudo nice -n -20 vi /etc/passwd y ya luego en otra ventana poner sudo top y dentro buscar el proceso vi, presionar r, para dar la vuelta el orden es con Shift + N (suele estar al final), luego poner el PID y ya ingresar el valor de prioridad y luego terminar el proceso pulsando la tecla k y luego poner el número 9 que es lo que sirve para matar el proceso.

10. Ejecutar el navegador WEB mozilla desde el terminal en segundo plano. Indicar el número de trabajo y su PID.

firefox & // jobs

ps aux | grep firefox

12. Mediante la orden jobs listar todos los trabajos en segundo plano del terminal.

sleep 500 & y luego jobs

13. Mirar los procesos existentes en el sistema y lanzar un proceso que dure 600 segundos en 1º plano (p.e. sleep 600)

sleep &

14. Mata el proceso ¿Qué observamos? ¿Aparecen los mismos procesos que al principio?

ps aux | grep sleep kill <PID>

15. Repetimos el 13 y el 14, pero ahora sólo queremos detener el proceso (no cancelarlo). ¿Qué observamos? ¿Aparecen los mismos procesos que al principio?

sleep 600

#en otra terminal

ps aux | grep sleep

16. ¿Cómo podemos hacer para que continúe el proceso en 1º plano? ¿Se puede hacer con la orden kill?

No se puede hacer con el comando kill porque no se usa para mover un proceso al primer plano, sino para enviar señales a los procesos. Se utilizaría el comando fg que si que serviría para mover un proceso al primer plano.

El comando some_process & sirve para ejecutar un proceso en segundo plano y así no bloquear la terminal y cuando se añade un & al final sirve para seguir usando la terminal para otros comandos mientras el proceso se está ejecutando en segundo plano.

17. Indica dos maneras para que un proceso detenido, continúe en 2º plano.

1º Ejecutar firefox y luego ponerlo en pausa con el comando killall -19 firefox y luego enviamos el proceso a segundo plano con bg.

2º Con el comando & se manda directamente a segundo plano.

18. Lanzar un proceso en 2º plano y obtener su PID. ¿Cuál es su número de trabajo y nº de proceso?

1º Lanzar firefox & en segundo plano y ya de ahi lanzar el comando jobs para ver si se está ejecutando en segundo plano y ya para ver el PID se lanza el comando ps aux | grep firefox que en este caso el PID es 13694

19. Si un proceso lanzado en 2º plano termina su ejecución, ¿seguirá apareciendo en la salida de jobs? Razona tu respuesta.

No, cuando un proceso está en segundo plano termina desaparece de la salida del jobs

20. Detén y vuelve a recontinuar en 2º plano un proceso lanzado en 1º plano

sleep 600

# En otra terminal

ps aux | grep sleep

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.