Administra procesos y registros en Kali

LinuxBeginner
Practicar Ahora

Introducción

Un comando de seguridad puede seguir ejecutándose después de que su trabajo útil se haya bloqueado. Antes de detener nada, necesitas identificar el proceso adecuado y comprender qué otra actividad debe permanecer disponible.

Esta práctica proporciona procesos de entrenamiento inofensivos y un registro de aplicación. Inspeccionarás identidades de procesos, gestionarás un trabajo de terminal, detendrás un proceso seleccionado y extraerás su diagnóstico sin tocar servicios de la plataforma.

Inspecciona procesos y gestiona un trabajo de terminal

En este paso inspeccionarás procesos en ejecución y compararás el trabajo de terminal en primer y segundo plano.

Entra en Kali y elige el espacio de trabajo compartido:

kali
cd /home/labex/project

Un proceso es un programa en ejecución con un identificador de proceso (PID) y un propietario. ps muestra una instantánea. La opción -e selecciona todos los procesos y -o selecciona los campos que se mostrarán:

ps -eo pid,user,args

Busca los procesos Python de práctica preparados y su propietario kali. Ignora los procesos ajenos de la plataforma y el contenedor.

top normalmente se actualiza continuamente. -b selecciona una vista por lotes imprimible, mientras que -n 1 la limita a una actualización:

top -b -n 1

Esto muestra una instantánea de recursos en lugar de dejarte dentro de una pantalla interactiva. Los PID y los valores de recursos varían.

Un comando en primer plano ocupa la terminal hasta que termina. sleep espera un número de segundos sin producir salida. Inicia una espera deliberadamente larga:

sleep 30

Pulsa Ctrl+C para interrumpir este comando en primer plano y volver al indicador. Ctrl+C es útil para detener el comando que ocupa actualmente tu terminal.

El & final inicia un comando en segundo plano, permitiendo que el shell acepte inmediatamente más comandos. Inicia un temporizador desechable:

sleep 300 &

El shell muestra un número de trabajo como [1] y un PID. jobs -l enumera los trabajos en segundo plano que pertenecen a este shell e incluye sus PID:

jobs -l

Deberías ver el trabajo sleep 300 ejecutándose. Déjalo activo para la comprobación de este paso. Mantén abierta la misma terminal para el siguiente paso; los números de trabajo pertenecen a esta sesión del shell.

Detén solo el proceso bloqueado y lee su registro

En este paso detendrás un proceso de práctica seleccionado, conservarás otro y guardarás las líneas de error relevantes.

En el mismo shell Kali, detén el temporizador desechable en segundo plano. kill envía una señal; su señal predeterminada de terminación solicita que un proceso finalice. La referencia de trabajo %1 designa el primer trabajo creado en este shell nuevo:

kill %1

El shell puede mostrar un aviso de terminación. Para un proceso que no se inició como uno de tus trabajos del shell, identifica primero su PID. pgrep -a muestra el PID y la línea de comandos completa de las coincidencias; -f compara con toda la línea de comandos:

pgrep -af stalled-worker.py

El comando relevante es python3 /opt/labex/stalled-worker.py. Es un proceso de entrenamiento inofensivo que espera indefinidamente. El proceso independiente training-heartbeat.py debe seguir ejecutándose.

Puedes pasar a kill un PID descubierto mediante sustitución de comandos. $(...) ejecuta el comando interior y sustituye su salida; las comillas dobles mantienen esa salida como un argumento. Las anclas ^ y $ coinciden con el comando completo esperado en lugar de un nombre parcial más amplio. Detén solo ese proceso exacto:

kill "$(pgrep -f '^python3 /opt/labex/stalled-worker.py$')"

Hazlo una vez; repetirlo después de que el proceso haya terminado no encontrará ningún PID. El comando debe volver sin salida. Confirma que el proceso que debes conservar sigue presente:

pgrep -af training-heartbeat.py

Su PID puede variar, pero su ruta de comando debe seguir apareciendo.

Un registro de aplicación almacena eventos en texto. El registro de práctica proporcionado es worker.log; el ejercicio no requiere systemd ni acceso a registros del kernel. Lee el registro:

cat /home/labex/project/worker.log

El registro mezcla mensajes informativos con una línea ERROR que describe la operación bloqueada. Utiliza el filtrado y la redirección ya presentados para guardar solo los registros de error:

grep '^ERROR ' /home/labex/project/worker.log > /home/labex/project/worker-errors.txt
cat /home/labex/project/worker-errors.txt

Salida esperada:

ERROR training request exceeded its time limit

Detuviste un proceso seleccionado, conservaste otro ajeno y mantuviste su diagnóstico separado del registro completo.

Resumen

Inspeccionaste identificadores de procesos, propietarios y líneas de comandos; observaste la interrupción en primer plano y los trabajos en segundo plano; enviaste una señal de terminación selectiva y filtraste un registro de aplicación. Conservaste un proceso ajeno mientras detenías el proceso bloqueado seleccionado.