Что означает строка 19: 12364 Killed в сообщении об ошибке crontab?

10

Я получил ежедневное задание crontab:

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

Этот сценарий оболочки daily_task запустит некоторые сценарии Python и создаст файл данных.

И это терпит неудачу в течение двух ночей. Но когда я пришел утром, запустил скрипты на python вручную, я получил файл данных. Или я установил новый crontab, в котором была установлена ​​только дата 0 10 * * *, и этот crontab также успешно выполняется .

Итак, вчера я поставил > /tmp/zen_log 2>&1задачу cron, чтобы получить сообщение об ошибке.

И сегодня утром я получил это сообщение об ошибке в 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

Кажется, какой-то процесс был убит? Но что именно это line 19: 12364 Killedозначает?


PS:

Сегодня, минуту назад, когда я вручную запустил скрипт python, я получил: /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1 Killed

Zen
источник
Что line 19в сценарии? Возможно, размещение вашего сценария поможет нам дать вам ответ.
devnull
line 19это/usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1
дзен
Можете ли вы обновить свой вопрос с содержанием daily_task.sh? Трудно понять, почему это терпит неудачу, 1:50 amно 10 amпока успешно справляется с информацией.
devnull
3
Также проверьте, что /var/log/messagesмне интересно, если ваш скрипт создает ошибку Out-of-Memory (OOM) и уничтожается. Ваша система склонна запускать другие сценарии / приложения / задания, требующие системных ресурсов, в поздние ночные часы по сравнению с часами AM?
devnull
@DevNull, я проверил журнал ядра, теперь я уверен, что этот скрипт занял слишком много памяти и ядро ​​убило его.
Дзен

Ответы:

17

Часто, когда работают приложения killed, всегда полезно быстро взглянуть на ваш /var/log/messagesфайл, чтобы увидеть, убивает ли ядро ​​процесс. Наиболее распространенный триггер (по моему опыту) всегда происходил из-за ошибок нехватки памяти (OOM), так как моя компания в основном использует Java-приложения, разработчики довольно часто публикуют обновление неверного кода, которое вызывает событие OOM ,

Планирование задач, когда ваша ОС имеет наибольшее количество доступных ресурсов, вероятно, объясняет, почему это происходит успешно во временных интервалах AM, а не в PM, когда большинству людей нравится планировать работу системы налогообложения. Простыми решениями этого являются либо увеличение ресурсов вашей системы, ограничение ресурсов, выделенных для вашего кода, либо перемещение по расписанию, чтобы они не конфликтовали.

devnull
источник
1
Просто обратите внимание, что по умолчанию Ubuntu выводит messagesв системный журнал вместо/var/log/messages
oak