Linux学习总结(六十五)tomcat启动脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux学习总结(六十五)tomcat启动脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3346字,纯文字阅读大概需要5分钟。
内容图文
![Linux学习总结(六十五)tomcat启动脚本](/upload/InfoBanner/zyjiaocheng/1164/8c751dc997bc431d85658b29b88c7923.jpg)
题目要求:
在生产环境中,经常遇到tomcat无法彻底关闭,也就是说用tomcat自带的shutdown.sh脚本无法将java进程完全关掉。所以需要借助shell脚本,将进程杀死,然后再启动。
写个shell脚本,实现上述功能。备注:彻底杀死一个进程的命令是kill -9 pid
题目分析:
1 题目要求脚本完成两个任务,关闭java进程和成功启动tomcat服务。所以它应该分为两部分:关闭和启动。就目前题目要求来说,我们只需要写stop和start两个函数,然后分别调用函数即可。如果我们要将其做成一个/etc/init.d/ 下面的启动脚本。那么只需要再该脚本基础上加上case 结构,可以执行stop和start选项。如果还需要一个重启功能,那么再定义一个restart函数,restsat功能就是先stop再start。在case多加一个条件就可以。
2 过程中需要注意的细节。 kill -9 杀进程比较危险有可能会导致一些数据丢失,尽量少用。
3 启动后要检查是否启动成功,可以通过是否存在java进程来判断。
脚本的整体框架就是:
#!/bin/bash
tomcatdir=/usr/local/tomcat
stop()
{
}
start()
{
}
stop
start
具体代码为
#!/bin/bash
tomcatdir=/usr/local/tomcat //指定tomcat的安装路径
stop()
{
echo -n "stopping tomcat."
killall java
i=0
while [ $i -lt 10 ]
do
if pgrep -l java &> dev/null //pgrep -l 显示进程名及pid,有数据表示非空,为真。
then
killall java
sleep 1
echo -n "." //每尝试一次输出一个点,给出状态提示。
i=$[$i+1]
else
echo -e "\033[32m[0k]\033[0m" //输出绿色的带中括号的ok字符
break
fi
done
//程序一进来先用killall尝试杀一遍进程,如果成功直接显示绿色字体的[ok]退出,如果失败,则再尝试10次。
if pgrep -l java &> /dev/null
then
pgrep java |xargs kill -9 &> /dev/null // xargs 表示对列出的每个进程都杀一次
sleep 1
pgrep java |xargs kill -9 &> /dev/null
fi
if pgrep java &> /dev/null
then
echo "java 进程杀不掉,请检查"
exit
fi
// 再次检查进程,如果还存在,用kill -9 强制杀,尝试两次。杀不死,输出提示信息。
}
start()
{
cd $tomcatdir
echo -n "starting tomcat."
./bin/startup.sh 2>/tmp/start_tomcat.log
i=0
while [ $i -lt 3 ]
do
if ! pgrep java &> /dev/null
then
./bin/startup.sh 2>/tmp/start_tomcat.log
echo -n "."
i=$[$i+1]
else
echo -e "\033[32m[0k]\033[0m"
break
fi
done
if ! pgrep java &> /dev/null
then
cat /tmp/start_tomcat.log
echo "tomcat 无法启动,请检查。"
fi
}
// 程序一进来先尝试启动一次,如果成功直接输出ok,如果还没找掉进程,则尝试三次。还是失败的话,给出提示退出。
if ! rpm -q psmisc &> /dev/null
then
echo "安装psmic包。"
yum install -y psmisc
fi
// 在调用函数之前,检查带有killall命令的包是否安装,没有使用yum安装。
stop
start
封装为可以开机启动的脚本
vim /etc/init.d/tomcatd
#!/bin/bash
#chkconfig: 2345 80 20
#############################################################################
#this scripts is about tomcat start or stop
#############################################################################
function usage(){
echo "$0 {start|stop|restart}"
}
if [ $# -ne 1 ];then
usage
exit 1
fi
tomcatdir=/usr/local/tomcat
start()
{
cd $tomcatdir
echo -n "starting tomcat."
./bin/startup.sh 2>/tmp/start_tomcat.log
i=0
while [ $i -lt 3 ]
do
if ! pgrep java &> /dev/null
then
./bin/startup.sh 2>/tmp/start_tomcat.log
echo -n "."
i=$[$i+1]
else
echo -e "\033[32m[0k]\033[0m"
break
fi
done
if ! pgrep java &> /dev/null
then
cat /tmp/start_tomcat.log
echo "tomcat 无法启动,请检查。"
fi
}
stop()
{
echo -n "stopping tomcat."
killall java
i=0
while [ $i -lt 10 ]
do
if pgrep -l java &> dev/null
then
killall java
sleep 1
echo -n "."
i=$[$i+1]
else
echo -e "\033[32m[0k]\033[0m"
break
fi
done
if pgrep -l java &> /dev/null
then
pgrep java |xargs kill -9 &> /dev/null
sleep 1
pgrep java |xargs kill -9 &> /dev/null
fi
if pgrep java &> /dev/null
then
echo "java 进程杀不掉,请检查"
exit
fi
}
restart()
{
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restat
;;
esac
原文:http://blog.51cto.com/12606610/2134485
内容总结
以上是互联网集市为您收集整理的Linux学习总结(六十五)tomcat启动脚本全部内容,希望文章能够帮你解决Linux学习总结(六十五)tomcat启动脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。