linux下根据进程名定时杀死/重启进程
例如:在/home/目录下有一个tomcat项目,名为tomcat-cs
现在根据需要每隔半小时重启一下该tomcat
步骤一:创建可执行文件
在/home/tomcat-cs/目录下创建restart-cs.sh文件如下
#! /bin/sh
ps -ef|grep tomcat-cs|grep java|awk '{print $2}'|xargs kill -9
sh /home/tomcat-cs/bin/startup.sh
保存,并赋予执行权限
chomd 777 /home/tomcat-cs/restart-cs.sh
代码详解:
ps -ef|grep tomcat-cs 查询进程名包含tomcat-cs字段的进程信息
grep java 在上一步的基础上排除其他进程(当前的ps进程),否者查询结果不唯一
awk '{print $2}' 提取查询结构的第二列,即进程编号
xargs kill -9 固定格式,根据上一步提取的进程id参数结束该进程
步骤二:添加定时任务
执行crontab -e
添加如下信息并保存
30 * * * * sh /home/tomcat-cs/restart-cs.sh