¿Qué significa `línea 19: 12364 asesinada` en el mensaje de error de crontab?

10

Tengo una tarea diaria de crontab:

50 1 * * * sh /my_path/daily_task.sh > /tmp/zen_log 2>&1

Este script de shell daily_task ejecutará algunos scripts de python y producirá un archivo de datos.

Y falla por dos noches. Pero cuando llegué por la mañana, ejecuté los scripts de Python manualmente, obtuve el archivo de datos. O establezco un nuevo crontab que solo establece la fecha 0 10 * * *, y este crontab también tiene éxito.

Así que ayer, puse > /tmp/zen_log 2>&1en la tarea cron para obtener un mensaje de error.

Y esta mañana, recibí este mensaje de error en zen_log:

/my_path/daily_task.sh: line 19: 12364 Killed /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1

Parece que algún proceso ha sido asesinado? Pero, ¿qué significa esto exactamente line 19: 12364 Killed?


PD:

Hoy, hace un minuto, cuando ejecuté manualmente el script de Python, obtuve: /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1 Killed

zen
fuente
¿Qué hay line 19en el guión? Tal vez publicar su guión nos ayudará a proporcionarle una respuesta.
devnull
line 19es/usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1
Zen
¿Puedes actualizar tu pregunta con el contenido de daily_task.sh? Es difícil entender por qué falla 1:50 ampero tiene éxito 10 amcon la información hasta ahora.
devnull
3
También verifique el contenido de /var/log/messagesMe pregunto si su script está creando un error de falta de memoria (OOM) y está siendo asesinado. ¿Su sistema tiende a ejecutar otros scripts / aplicaciones / trabajos hambrientos de recursos del sistema durante las horas nocturnas en comparación con las horas de la mañana?
devnull
@DevNull, revisé el registro del kernel, ahora estoy seguro de que este script ha ocupado demasiada memoria y el kernel lo eliminó.
Zen

Respuestas:

17

Muchas veces, cuando se están ejecutando aplicaciones killed, siempre es una buena idea echar un vistazo rápido a su /var/log/messagesarchivo para ver si el núcleo está matando el proceso. El desencadenante más común (en mi experiencia) siempre se ha debido a errores de falta de memoria (OOM), ya que mi empresa utiliza principalmente aplicaciones java, es bastante común que los desarrolladores publiquen una actualización de código incorrecto que desencadena un evento OOM .

Programar tareas cuando su sistema operativo tiene la mayoría de los recursos disponibles es probablemente la razón por la que está teniendo éxito en los intervalos de tiempo de AM y no en el PM, cuando a la mayoría de las personas les gusta programar trabajos del sistema de impuestos. Las soluciones simples a esto son aumentar los recursos de su sistema, restringir los recursos asignados a su código o moverse cuando sus trabajos están programados para que no entren en conflicto.

devnull
fuente
1
Solo tenga en cuenta que, de forma predeterminada, ubuntu genera el messagessyslog en lugar de/var/log/messages
oak