1、编写脚本
[root@qasapp1 ~]# vim /etc/init.d/tomcat
#!/bin/bash
# description: Tomcat8 Start Stop Restart
# processname: tomcat8
# chkconfig: 234 20 80
export LANG='zh_CN.UTF-8'
CATALINA_HOME=/home/weblogic12/apache-tomcat
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
*)
echo 'please use : tomcat {start | stop | restart}'
;;
esac
exit 0
2、赋权限
[root@qasapp1 ~]# chmod -R 751 /etc/init.d/tomcat
[root@qasapp1 ~]# service tomcat restart
3、tomcat shutdown后,进程仍存在解决办法
原因:关闭后实际jvm进程没有退出,但是端口释放了,没有退出的原因是有非守护进程没有退出,导致jvm没有退出,导致tomcat启动的进程没有结束
解决办法:把tomcat的启动进程pid保存下来,shutdown的时候把这个pid强制关掉
//添加CATALINA_PID
[root@www]# vi catalina.sh
# CATALINA_PID (Optional) Path of the file which should contains the pid
# of the catalina startup java process, when start (fork) is
# used
CATALINA_PID=/app/apache-tomcat/bin/CATALINA_PID
//设置强制关闭,修改尾行添加 -force
[root@localhost pc1]# vi shutdown.sh
...
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
//vim修改tomcat下bin/catalina.sh文件,添加点如下标红的代码,主要是记录tomcat的pid,如下:
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
fi