在crontab错误消息中,第19行:12364被杀死是什么意思?


10

我每天都有一个crontab任务:

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

这个daily_task shell脚本将运行一些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


什么是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 am10 am到目前为止却成功了。
devnull

3
还要检查“ /var/log/messages我想知道您的脚本是否正在创建内存不足(OOM)”错误并被杀死的内容。与AM时间相比,您的系统是否倾向于在深夜运行其他占用系统资源的脚本/应用程序/作业?
devnull

@DevNull,我检查了内核日志,现在我确定此脚本已占用过多内存,并且内核已将其杀死。
禅宗

Answers:


17

通常在应用程序出现时killed,快速浏览/var/log/messages文件以查看内核是否正在杀死进程始终是一个好主意。根据我的经验,最常见的触发器始终是由于内存不足(OOM)错误造成的,因为我的公司主要使用Java应用程序,因此开发人员发布触发OOM事件的错误代码更新是很常见的。

当操作系统拥有最多可用资源时,计划任务可能是为什么它在AM时隙而不是PM在大多数人喜欢计划计税系统作业时成功的原因。一个简单的解决方案是增加系统资源,限制分配给代码的资源或在计划作业时四处移动,以免冲突。


1
需特别注意的是,默认情况下,ubuntu将输出输出messages到syslog中,而不是/var/log/messages
Oak,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.