正常情況下腳本執行時間幾秒完成,如果超過很長時間執行完成,可能是進程等待某些資源引起阻塞(假死狀態)。 場景:xx.perl讀取文件併發送郵件 現象:執行腳本的進程僵死(卡住) 排查:ps -ef |grep “perl xx.perl” 跟蹤:strace -p 16634 (跟蹤進程執行時的系統 ...
常情況下腳本執行時間幾秒完成,如果超過很長時間執行完成,可能是進程等待某些資源引起阻塞(假死狀態)。
場景:xx.perl讀取文件併發送郵件
現象:執行腳本的進程僵死(卡住)
排查:ps -ef |grep “perl xx.perl”
跟蹤:strace -p 16634 (跟蹤進程執行時的系統調用和所接收的信號(即它跟蹤到一個進程產生的系統調用,包括參數、返回值、執行消耗的時間),卡在read(3,位置
查看進程文件描述符目錄:查看3進行的是socket操作,也就是卡在通信。
使用netstat -anoutp |grep 24432 查看通信的目標是什麼:埠ip:25,可以確定是郵件伺服器
總結:程式卡在與郵件伺服器通信環節導致進程卡住。