Indique cuál ha sido el error introducido en el guion anterior y cómo se corregiría.
El error está en el uso del comando test
mediante la sintaxis [ ]
. Es necesario
dejar un espacio entre cada corchete para que se ejecute el comando test.
Aplicar las herramientas de depuración vistas en la sección 2 para la detección de errores durante el desarrollo de los guiones propuestos como ejercicios en la práctica 6.
Antes de entregar los ejercicios de la práctica 6, estos fueron cuidadosamente depurados.
Escribir un guion que nos dé el nombre del proceso del sistema que consume más memoria.
consume.sh
ps -u $USER -o cmd --sort=-%mem --no-headers | head -n 1
Explicación;:
ps
-u
$USER muestra todos los procesos del usuario activo.-o cmd
Permite sólo mostrar el nombre del comando--sort=-%mem
Ordena por memoria ocupada descendentemente (máximo arriba)no-headers
No muestra la cabecera
head -n 1
- Obtenemos la primera línea
Escribir un guion que escriba números desde el 1 en adelante en intervalos de un segundo ¿Cómo se podría, desde otro terminal, detener la ejecución de dicho proceso, reanudarlo y terminar definitivamente su ejecución?
contador_fantasma
a=1
while true; do
sleep 1
echo $((++a))
done
Ejecutamos
$ contador_fantasma &
[1] 21828
Y desde otra terminal ejecutamos:
- Detener la ejecución del proceso (Señal
SIGTSTP
)
$ kill -TSTP 21828
(Es más adecuada una señal SIGTSTP
que una SIGSTOP
)
- Reanudar la ejecución del proceso (Señal
CONT
)
$ kill -CONT 21828
- Terminar definitivamente su ejecución:
$ kill -TERM 21828
¿Se puede matar un proceso que se encuentra suspendido? En su caso, ¿cómo?
Sí, mediante la opción -9
de la orden kill
$ kill -9 [pid]
¿Qué debemos hacer a la orden top para que nos muestre sólo los procesos nuestros?
Simplemente usando la opción -u
$ ps -u $USER