实践中,经常发现有些shell命令长期执行,于是整理一程序,crontab定时清理下:
- #!/bin/sh
- p_name=phantomJs
- while true
- do
- sleep 3
- #every 3s check
- pid="$(ps -ef|grep $p_name|awk '{print $2}'|head -n1)"
- echo $pid
- ptime="$(ps -eo pid,etime|grep $pid|awk '{print $2}' |head -n1)"
- echo $ptime
- pstatus="$(echo $ptime|awk '{split($1,tab,/:/); if (tab[2]+tab[1]*60>=60) {print 1}else{print 0} }')"
- echo $pstatus
- #if time > 1 hour,return 0,else 1
- if [ $pstatus="1" ];then
- kill -9 $pid
- echo "kill success " $pid
- fi
- done