我写了几个ksh脚本,大约6个脚本。 这些是为处理大量数据文件而编写的,类似207 MB大。在运行脚本时,有时它会卡住并且不会结束。 人为干扰是必需的。 在生产环境中,我希望它能够自动运行,并且应该能够在没有任何人为中断的情况下自动结束。 如果文件存在某些问题,脚本应该结束并开始执行下一个文件。 如果它被卡住了怎么能让它自己终止?
答案 0 :(得分:0)
我认为,您看到问题的唯一方法是脚本耗时太长。在这种情况下,一个在超时后杀死进程的简单脚本就足够了:
#!/bin/bash
# Killersrcipt
PID=$1
TIME=$2
typeset -i i
i=0
while [ $i -lt $TIME ] ; do
if ps $PID > /dev/null ; then
i=$i+1
sleep 1
else
exit 0
fi
done
kill $PID
您的工作流程将类似于:
#!/bin/bash
process_1 &
killerscript $! 60
process_2 &
killerscript $! 30
...
如果您有其他方法可以检测流程中的问题,您可以轻松地将它们添加到killerscript中的循环中。