凌晨1点,接同事电话,生产故障,猜测是前一天进行系统维护增加定时任务导致。
定时任务写在crontab中,脚本任务是要找到java进程并杀掉进程后重启
其中脚本内容如下
直接执行脚本显示killed
执行后java进程确实有被杀掉,但是并没有被重新拉起
再看脚本,发现脚本名字restart_java.sh中带有java,脚本命令中有匹配 java 字符杀掉进程的命令
ps -ef|grep java|grep -v grep|awk '{print $2}'|xargs kill -9
grep匹配到脚本进程,就把脚本一起杀掉,没有往下继续执行。
解决方案:脚本更名为restart.sh,名字中去掉java,再次执行,执行成功