Linux多个tomcat开机自启方案
Linux下多个tomcat开机自动启动有两种方法,一种是修改系统文件,一种shell脚本实现
一. 修改系统文件
1.修改/etc/rc.d/rc.local
vi /etc/rc.d/rc.local
2.在/etc/rc.d/rc.local文件最后添加下面脚本:
export JAVA_HOME=/usr/local/java/jdk1.8.0_191 jdk路径必加
/soft/tomcat84/apache-tomcat-8.5.57/bin/startup.sh start tomcat1路径
/soft/tomcat85/apache-tomcat-8.5.57/bin/startup.sh start tomcat2路径
多个tomcat依次添加
3.修改rc.local文件为可执行
chmod +x rc.local
4.验证
reboot重启服务器,观察应用是否启动
二.shell脚本启动
1.在/etc/init.d下新建文件tomcat(需要在root权限下操作)
vi /etc/init.d/tomcat
文件内容见底部
以下为部分内容说明:
JAVA_HOME=/usr/local/java/jdk1.8.0_191 修改为自己jdk路径
JRE_HOME=/usr/local/java/jdk1.8.0_191/jre jre路径
CATALINA_HOME=/soft/tomcat80/apache-tomcat-8.5.57 第一个tomcat地址
CATALINA_BASE=/soft/tomcat80/apache-tomcat-8.5.57 第一个tomcat地址
CATALINA_HOME2=/soft/tomcat81/apache-tomcat-8.5.57 第二个tomcat地址
CATALINA_BASE2=/soft/tomcat81/apache-tomcat-8.5.57 第二个tomcat地址
多个tomcat依次配置,另需修改start,stop方法,copy修改。
注意:多个tomcat修改conf/server.xml中8005,8080,8019端口
修改bin/catalina.sh中的CATALINA_HOME, CATALINA_BASE
2,文件增加可执行权限
chmod +x /etc/init.d/tomcat
3. 挂载
ln -s /etc/init.d/tomcat /etc/rc2.d/S16Tomcat
4.设置脚本开机自启动
chkconfig --add tomcat
5.验证
reboot重启服务器,观察应用是否启动
6.扩展
启动,停止,重启tomcat可以直接用命令
service tomcat start
service tomcat stop
service tomcat restart
如遇tomcat的8005端口启动不起来的解决办法:
修改$JAVA_HOME/jre/lib/security/java.security 文件中 securerandom.source 配置项
将原本的:securerandom.source=file:/dev/random
修改为: securerandom.source=file:/dev/urandom
保存退出后,杀掉java进程,再重新启动
tomcat脚本文件内容
下载地址: tomcat
#!/bin/sh
# chkconfig: 112 63 37
# description: Auto-starts tomcat
# /etc/init.d/tomcat
# Tomcat auto-start
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
RETVAL=0
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export JRE_HOME=/usr/local/java/jdk1.8.0_191/jre
export CATALINA_HOME=/soft/tomcat80/apache-tomcat-8.5.57
export CATALINA_BASE=/soft/tomcat80/apache-tomcat-8.5.57
export CATALINA_HOME2=/soft/tomcat81/apache-tomcat-8.5.57
export CATALINA_BASE2=/soft/tomcat81/apache-tomcat-8.5.57
export CATALINA_HOME3=/soft/tomcat82/apache-tomcat-8.5.57
export CATALINA_BASE3=/soft/tomcat82/apache-tomcat-8.5.57
start()
{
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat80"
$CATALINA_HOME/bin/startup.sh
RETVAL=$?
echo "Tomcat80 OK"
fi
sleep 1
if [ -f $CATALINA_HOME2/bin/startup.sh ];
then
echo $"Starting Tomcat81"
$CATALINA_HOME2/bin/startup.sh
RETVAL=$?
echo "Tomcat81 OK"
fi
sleep 1
if [ -f $CATALINA_HOME3/bin/startup.sh ];
then
echo $"Starting Tomcat82"
$CATALINA_HOME3/bin/startup.sh
RETVAL=$?
echo "Tomcat82 OK"
fi
return 1
}
stop()
{
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat80"
$CATALINA_HOME/bin/shutdown.sh
RETVAL=$?
fi
sleep 1
if [ -f $CATALINA_HOME2/bin/shutdown.sh ];
then
echo $"Stopping Tomcat81"
$CATALINA_HOME2/bin/shutdown.sh
fi
sleep 1
if [ -f $CATALINA_HOME3/bin/shutdown.sh ];
then
echo $"Stopping Tomcat82"
$CATALINA_HOME3/bin/shutdown.sh
RETVAL=$?
fi
sleep 1
ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
echo "Tomcat82 OK"
# [ $RETVAL -eq 0 ] && rm -f /var/lock/...
return 1
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo $"Restaring Tomcat"
$0 stop
sleep 1
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL