GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo monitorear o matar un proceso que ha sido iniciado por Cron?

Tengo algunos bots, que son ejecutados por el programador del sistema en un intervalo de tiempo determinado. Pero a veces, debido a algún error lógico, tengo que detener estos bots manualmente. ¿Cómo puedo encontrar estos procesos ejecutados por el planificador y eliminarlos?

Respuesta aceptada:

Puede matar procesos por nombre. Por ejemplo, en Linux, *BSD y Solaris, pkill myprogram mata todos los procesos cuyo nombre contiene myprogram (usa pkill '^myprogram$' para una coincidencia exacta). Si lo ejecuta como un usuario no root, solo se eliminarán los procesos de ese usuario, y hay más opciones para controlar la coincidencia (consulte el manual de su sistema para obtener más detalles).

Si desea apuntar específicamente a los procesos iniciados por el programador y está matando los procesos manualmente, puede ejecutar ps f (solo Linux) o pstree (solo Linux) o ptree para mostrar los procesos en un árbol y ver qué procesos inició cron.

Si desea poder eliminar estos procesos automáticamente con un método casero, haga que almacenen su ID de proceso en un archivo. Este tipo de archivo se llama pidfile cuando se usa para tener una sola instancia del proceso en ejecución (que puede o no ser algo que desee). Si desea varias instancias, almacene los PID en archivos separados en un directorio común; aquí hay un fragmento de shell que hace esto:

pid_dir=/var/run/myprogram # must have been created e.g. at boot time
myprogram &
pid_file=$pid_dir/$!.pid
touch "$pid_file"
wait
rm "$pid_file"

Una mejor solución, si tiene criterios estrictos para detectar procesos fuera de control, es usar un programa de monitoreo general o, en casos simples, simplemente poner un límite a la duración del proceso. Estos enlaces pueden resultarle útiles:

  • "Monit puede iniciar un proceso si no se ejecuta, reiniciar un proceso si no responde y detener un proceso si utiliza demasiados recursos".
  • Necesito ayuda con un cronjob para vigilar los procesos fuera de control y eliminarlos
  • ¿Cómo limitar el uso de recursos para ahorrar CPU+RAM para un determinado proceso?
  • ¿Hay alguna manera de limitar la cantidad de memoria que un proceso en particular puede usar en Unix?
Relacionado:Debian:¿dónde almacena Debian el historial de conectividad de la red?
Linux
  1. Cómo matar un proceso zombie en Linux

  2. ¿Qué son los procesos zombis y cómo encontrar y eliminar procesos zombis?

  3. ¿Cómo identificar un proceso que no tiene Pid?

  4. Cómo matar procesos en ejecución en Linux

  5. ¿Cómo matar todos los procesos con un nombre parcial dado?

Cómo matar procesos Zombie en Linux

Cómo saber cuánto tiempo ha estado ejecutándose un proceso en Linux

Cómo matar procesos Zombie en Ubuntu 20.04 LTS

Cómo MATAR un proceso en Linux

Cómo matar procesos Zombie en Ubuntu

Cómo matar procesos en Linux usando kill, killall y pkill