常情况下脚本执行时间几秒完成,如果超过很长时间执行完成,可能是进程等待某些资源引起阻塞假死状态)。
场景:xx.perl读取文件并发送邮件
现象:执行脚本的进程僵死卡住)
排查:ps -ef |grep “perl xx.perl”
跟踪:strace -p 16634 跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间),卡在read3,位置
查看进程文件描述符目录:查看3进行的是socket操作,也就是卡在通信。
使用netstat -anoutp |grep 24432 查看通信的目标是什么:端口ip:25,可以确定是邮件服务器
总结:程序卡在与邮件服务器通信环节导致进程卡住。
冰冻三尺非一日之寒!