educación, informática y demás

2317 - Procesos, Casos prácticos, Sistemas Operativos en Red

Automatización de la gestión de procesos

Como bien sabemos un proceso es un programa en ejecución. Podemos consultar información de procesos con el comando ps. Si lo ejecutamos sin pasar ningún parámetro, nos encontramos con la siguiente información:

Sin embargo, esta lista de procesos es demasiado corta, no es lo que esperamos en un sistema donde seguro hay más procesos en ejecución.

Probemos a ejecutar de nuevo el comando ps, pero esta vez con la opción -A.

De esta forma, se muestra información de todos los procesos que se están ejecutando en el sistema.

Lo ideal es que consultemos la ayuda disponible sobre el comando ps para que conozcamos que operaciones tenemos disponibles en el comando. Podemos consultar la página de manual de ps con el comando man ps.

Con ps aux se muestran todos los procesos con información extendida entre la que destaca el usuario que está ejecutando el proceso.

Vamos a jugar un poco con el comando:

Pero no tenemos claro que es cada campo… para ello, tendríamos que consultar la primera línea que muestra el comando ps aux.

Script psUsuario.sh

Vamos a crear un script llamado psUsuario.sh que recibirá por parámetro el nombre de un usuario del sistema. Si no se proporciona un usuario por parámetro, entonces el usuario seleccionado será el usuario actual o el que ejecuta el script.

Este script mostrará información de los procesos del usuario seleccionado en el sistema, pero no mostraremos todos los campos. Para cada proceso en ejecución del usuario mostraremos solo el PID, el tanto por ciento de uso de la CPU, el tanto por ciento de uso de la memoria, el tiempo de uso de la CPU y el comando ejecutado.

buscaProcesos.sh

Busca todos los procesos que están ejecutando el comando o programa proporcionado por parámetro. La búsqueda la haremos por palabras completas, es decir si me pasan por parámetro fire, solo se mostrarán los procesos cuyo nombre sea fire, no firefox.

Para cada proceso en ejecución que cumpla con el criterio mostraremos solo el nombre del usuario que lo ejecuta, el PID, el tanto por ciento de uso de la CPU, el tanto por ciento de uso de la memoria, el tiempo de uso de la CPU y el comando ejecutado.

mataProcesos.sh

Mata todos los procesos cuyo nombre se pase por parámetro. Es decir, terminará con la ejecución de los procesos que están ejecutando el comando o programa proporcionado por parámetro. La búsqueda la haremos por palabras completas, es decir si me pasan por parámetro fire, solo se mostrarán los procesos cuyo nombre sea fire, no firefox.

Lo ideal es preguntar antes de matar todos los procesos. Así pues, mostramos primero la lista de procesos que vamos a matar y después pedimos confirmación al usuario «¿Desea matar todos estos procesos? [N]/s: «

Procesos de usuarios conectados psConectados.sh

Crea un script que muestre, para cada uno de los usuarios conectados al sistema, los procesos que tiene en ejecución. Para cada proceso se mostrarán tan solo el PID, el tanto por ciento de uso de la CPU, el tanto por ciento de uso de la memoria, el tiempo de uso de la CPU y el comando ejecutado.

Dejar una respuesta