在Linux环境下,我们经常会遇到系统升级或tomcat服务器异常,需要人工介入重启的情况。然后这一套操作比较麻烦,因此我们需要一个能够自动化完成此任务的shell脚本。
一、查询Tomcat进程
在Linux环境下,我们可以通过”ps -ef“命令查看系统中所有的进程,再通过grep命令筛选出含有”tomcat“的进程。
ps -ef | grep tomcat
找出tomcat进程后,我们可以看到进程的PID(Process ID)。这个PID是我们需要杀死进程的关键。
二、杀掉Tomcat进程
一旦我们找到了Tomcat的PID,我们就可以使用”kill”命令来结束这个进程。
kill -9 PID
其中,-9 参数表示强制杀掉进程。
三、编写Shell脚本
下面是一个自动查找并杀掉Tomcat进程的shell脚本:
#!/bin/bash
# 获取Tomcat进程
tomcat_pid=`ps -ef | grep tomcat | grep -v "grep" | awk '{print $2}'`
if [ -n "$tomcat_pid" ]; then
echo "Tomcat PID: $tomcat_pid"
kill -9 $tomcat_pid
echo "Tomcat process killed"
else
echo "No Tomcat process found"
fi
echo "Tomcat已成功终止。"
四、重新启动Tomcat
杀掉Tomcat进程后,我们需要重新启动Tomcat。
假设Tomcat的安装路径为/home/jbs/apache-tomcat-8.5.99,我们可以用以下命令启动Tomcat:
/home/jbs/apache-tomcat-8.5.99/bin/startup.sh
结合上述,我们可以编写一个完成全部任务的shell脚本:
#!/bin/bash
# Tomcat安装目录
TOMCAT_HOME="/home/jbs/apache-tomcat-8.5.99"
# 启动日志文件路径
LOGFILE="$TOMCAT_HOME/logs/catalina.out"
# 获取Tomcat进程
tomcat_pid=`ps -ef | grep tomcat | grep -v "grep" | awk '{print $2}'`
if [ -n "$tomcat_pid" ]; then
echo "Tomcat PID: $tomcat_pid"
kill -9 $tomcat_pid
echo "Tomcat process killed"
else
echo "No Tomcat process found"
fi
echo "Tomcat已成功终止。"
echo "Starting Tomcat..."
$TOMCAT_HOME/bin/startup.sh
tail -f "$LOGFILE" # 显示最后几行启动日志
在最后如果让文件生效需要授权
chmod u+x reststart.sh