场景
服务有的时候会假死,重启后问题解决。
解决方案
这种情况不好排查,先采用定时任务的方式来实现重启。
直接上脚本:
# 编辑脚本文件
vim /root/crm_restart.sh ;
# 添加文件头,然后保存
输入: #!/bin/bash
# 授权 一定别忘了授权,因为新文件是没有执行权限的
chmod 755 /root/crm_restart.sh;
# chmod -x 授权加不上,原因未知
# chmod -x /root/crm_restart.sh;
# cronttab -e 定时任务中指定每3天的3点执行一次
0 3 */3 * * /root/crm_restart.sh # 每3天凌晨3点执行,如果有多个服务,可以错开时间
# 重启逻辑
#!/bin/bash
ps -ef | grep crm_service| grep -v grep | awk '{print $2}' | xargs kill -9;
cd /data/crm_service/current/jars;
sh start_script.sh start;
编码解释
ps -ef | grep crm_service| grep -v grep | awk '{print $2}' | xargs kill -9;
解释:
ps -ef | grep crm_service 拿到这个服务
grep -v grep 排除掉grep这行记录
awk '{print $2}' ps命令第一列是用户,第二列是pid(processId)
xargs kill -9 杀掉这个进程