Técnicas avanzadas de control de trabajos
Si bien los comandos básicos para administrar trabajos en la terminal de Linux, como jobs, fg y bg, son esenciales, también existen técnicas más avanzadas que los usuarios pueden aprovechar para tener un mayor control sobre sus procesos en ejecución. En esta sección, exploraremos algunas de estas técnicas avanzadas de control de trabajos.
Terminar trabajos
Además de suspender y reanudar trabajos, los usuarios también pueden terminar trabajos en ejecución utilizando el comando kill. Este comando envía una señal al proceso objetivo, que se puede utilizar para apagar el proceso de forma adecuada o forzar su terminación.
## Start a long-running process
$ sleep 60 &
[1] 12345
## Terminate the job
$ kill %1
[1]+ Terminated sleep 60
En este ejemplo, utilizamos el comando kill con el número de trabajo (%1) para terminar el proceso sleep 60 que se está ejecutando en segundo plano.
Programación y automatización de trabajos
Los usuarios de Linux también pueden programar trabajos para que se ejecuten en momentos o intervalos específicos utilizando herramientas como cron y at. Esto permite la automatización de tareas repetitivas, como copias de seguridad, mantenimiento del sistema o procesamiento de datos.
A continuación, un ejemplo de cómo utilizar cron para programar un trabajo:
## Edit the crontab
$ crontab -e
## Add a cron job to run a script every weekday at 8 AM
0 8 * * 1-5 /path/to/script.sh
Este trabajo de cron ejecutará el script script.sh todos los días laborables (de lunes a viernes) a las 8 de la mañana.
Para monitorear el estado y el uso de recursos de los trabajos en ejecución, los usuarios pueden aprovechar herramientas como top, htop y ps. Estas herramientas proporcionan información detallada sobre los procesos que se están ejecutando en el sistema, incluyendo su uso de CPU y memoria, así como el usuario y el comando asociados a cada proceso.
$ top
Tasks: 193 total, 1 running, 192 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3921036 total, 226748 free, 641124 used, 3053164 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 2666448 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 user 20 0 10.0m 2.4m 1.4m S 0.3 0.1 0:00.13 sleep
Esta salida de top muestra los procesos en ejecución actualmente, incluyendo el trabajo sleep que iniciamos anteriormente.
Al aprovechar estas técnicas avanzadas de control de trabajos, los usuarios de Linux pueden obtener un control más detallado sobre sus procesos en ejecución, automatizar tareas repetitivas y monitorear el rendimiento y el uso de recursos de sus aplicaciones, lo que conduce a una experiencia de terminal más eficiente y productiva.