Shell脚本进程自动被杀死

时间:2013-04-04 05:47:30

标签: linux shell process linux-kernel operating-system

我面临着shell脚本的问题我有ascript将在无限循环中运行所以说它的havin PID X.这个过程运行4-5个小时但是这个过程自动被杀死了。这种情况只发生了一段时间时间运行系统,我观察了2小时后的一些时间也被杀死了。

我无法找到原因导致它被杀的原因。没有人使用除我之外的系统。我以root用户身份运行该进程。

任何人都可以解释或怀疑是谁杀死了这个过程。

以下是示例脚本

#!/bin/bash 

until ./test.tcl; do 
   echo "Server 'test.tcl' crashed with exit code $?. Respawing.." >&2 
done

test.tcl 脚本中我运行它进行无限循环,脚本用于捕获信号并执行一些特殊操作。但我们发现 test.tcl 也在下降。 那么我有什么方法可以捕捉到谁以及它如何被杀死。

2 个答案:

答案 0 :(得分:3)

在系统中启用核心转储,这是应用程序崩溃分析最常用的方法。我知道gdb核心文件有点痛苦,但或多或​​少你可以找到它的东西。 以下是您的参考链接。(http://www.cyberciti.biz/tips/linux-core-dumps.html)。

另一种方法是通过“strace -p PID-X”跟踪脚本,注意它会降低你的系统速度,特别是在你的情况下几个小时,但它可能是最后的手段。

希望以上对你有所帮助。

答案 1 :(得分:1)

最好通过特定脚本检查当时由OS生成和捕获的所有信号,这可能是导致您的进程终止的信号之一。