Linux下Tomcat安装自启动优化

news/2024/7/10 4:52:33 标签: tomcat, 优化

安装

(1) 下载安装

登录http://tomcat.apache.org/,在Download菜单选择要下载的版本
在Binary Distributions下, 最好选择最新版本的二进制压缩包Core zip

或者通过命令下载:

$ wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.zip

zip包下载后不用安装,只需要解压即可

$ unzip apache-tomcat-7.0.70.zip

改名:

$ mv apache-tomcat-7.0.70 tomcat7 

tomcat启动脚本优化">(2) Tomcat启动脚本优化

修改 bin/catalina.sh 脚本
添加JAVA_HOME、CATALINA_HOME、CATALINA_BASE、CATALINA_TMPDIR、CATALINA_PID、JAVA_OPTS参数。

$ vim tomcat7/bin/catalina.sh

...

101 #   USE_NOHUP       (Optional) If set to the string true the start command will
102 #                   use nohup so that the Tomcat process will ignore any hangup
103 #                   signals. Default is "false" unless running on HP-UX in which
104 #                   case the default is "true"
105 # -----------------------------------------------------------------------------
106 
107 export JAVA_HOME=/usr/local/jdk-1.7.0
108 export CATALINA_HOME=/usr/local/tomcat7
109 export CATALINA_BASE=$CATALINA_HOME
110 export CATALINA_TMPDIR=$CATALINA_HOME/temp
111 CATALINA_PID=/usr/local/tomcat7/pid
112 JAVA_OPTS="-server -Xms786m -Xmx786m -XX:PermSize=128m -XX:MaxPermSize=256m"
113 
114 # OS specific support.  $var _must_ be set to either true or false.
115 cygwin=false
116 darwin=false
117 os400=false
118 hpux=false

其中 JAVA_OPTS 是tomcat JVM调优参数

参数说明
-server会以服务器模式启动,会自动优化一些JVM参数
-Xms786m最小堆内存
-Xmx786m最大堆内存
-XX:PermSize=128m初始分配永久代内存
-XX:MaxPermSize=256m最大分配永久代内存

(3) 自启动设置

进入系统启动配置目录创建一个tomcat自启动脚本
这个脚本只需要修改 CATALINA_HOME 就可以直接使用

$ cd /etc/init.d/
$ vim tomcat
#!/bin/bash
#
# hushuang.me
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
#
# processname: tomcat
# description: tomcat is a j2se server
# chkconfig: 2345 86 16
# description: Start up the Tomcat servlet engine.
CATALINA_HOME="/usr/local/tomcat7"

if [ -f /etc/init.d/functions ]; then
    . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
    . /etc/rc.d/init.d/functions
else
    echo -e "/atomcat: unable to locate functions lib. Cannot continue."
    exit -1
fi

RETVAL=$?

case "$1" in
    start)
        if [ -f $CATALINA_HOME/bin/startup.sh ];
        then
            echo $"Starting Tomcat"
            $CATALINA_HOME/bin/startup.sh
        fi
        ;;
    stop)
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];
            then
            echo $"Stopping Tomcat"
            $CATALINA_HOME/bin/shutdown.sh
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit $RETVAL

修改完成后,将tomcat自启动服务加入系统的启动管理器中

chkconfig -- add tomcat

查看一下tomcat服务在系统启动配置中的状态

$ chkconfig --list
...

tomcat          0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
sshd            0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
svnserve        0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
sysstat         0:关闭    1:启用    2:启用    3:启用    4:启用    5:启用    6:关闭
udev-post       0:关闭    1:启用    2:启用    3:启用    4:启用    5:启用    6:关闭
zabbix-agent    0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
zabbix-agentd   0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

这样,通过service命令在系统任何位置就可以直接启动tomcat

$ service tomcat start

当然,我们的脚本还支持重启和关闭tomcat服务

$ service tomcat restart
$ service tomcat stop

(4) 根目录更改

默认情况下,Tomcat启动后,webapps下ROOT目录中的项目不需要输入路径就可以直接访问了
如果不想到Tomcat的ROOT目录去部署项目,不想对原有的Tomcat有更多接触,想自己定义一个目录作为Tomcat的根目录,我们可以这样做:

在conf目录创建一个【Catalina/localhost】目录

$ mkdir -p conf/Catalina/localhost/ROOT.xml

在【localhost】目录创建一个ROOT.xml的文件
加入一段指定内容

$ vim conf/Catalina/localhost/ROOT.xml
...
<Context crossContext="true" docBase="/home/username/tomcat" path="/" reloadable="true">
</Context>

然后根据docBase创建/home/username/tomcat目录

$ mkdir -p /home/username/tomcat

然后将你打好的war包放入tomcat,解压

$ cp web-0.0.1-SNAPSHOT.war /home/username/tomcat
$ cd /home/username/tomcat
$ unzip web-0.0.1-SNAPSHOT.war
...
$ ll
-rw-r--r-- 1 root root 25812334 824 17:23 web-0.0.1-SNAPSHOT.war
-rw-r--r-- 1 root root     2559 824 17:53 login.jsp
drwxr-xr-x 2 root root     4096 825 19:09 META-INF
drwxr-xr-x 3 root root     4096 714 17:37 resources
drwxr-xr-x 5 root root     4096 824 17:53 WEB-INF

启动tomcat你就可以访问你的应用了

$ service tomcat start

http://www.niftyadmin.cn/n/1661579.html

相关文章

Redis有序集合命令ZREVRANGEBYSCORE详解与应用

Redis有序集合命令ZREVRANGEBYSCORE详解与应用 本文是我在redis中文网翻译团队翻译redis命令的相关内容&#xff0c;也是取得翻译团队同意后在CSDN同步发表 redis.cn翻译团队 也欢迎有兴趣和能力的朋友加入&#xff01; 根据分数排序获取成员列表 ZREVRANGEBYSCORE 1 简介 Z…

SLS机器学习介绍(04):规则模式挖掘

文章系列链接 SLS机器学习介绍&#xff08;01&#xff09;&#xff1a;时序统计建模SLS机器学习介绍&#xff08;02&#xff09;&#xff1a;时序聚类建模SLS机器学习介绍&#xff08;03&#xff09;&#xff1a;时序异常检测建模SLS机器学习介绍&#xff08;04&#xff09;&am…

Spring定时任务 Could not find default TaskScheduler bean异常处理

Spring定时任务 Could not find default TaskScheduler bean异常处理 最近使用Spring SpringMvc Quartz搭建的零配置系统中&#xff0c;使用annotation注解方式, 直接在类的方法上使用Scheduled(cron”0 /5 * * ?”)来实现定时任务&#xff0c;在使用debug日志级别时&…

Redis有序集合命令ZREVRANGEBYLEX详解与应用

Redis有序集合命令ZREVRANGEBYLEX详解与应用 1 简介 ZREVRANGEBYLEX 返回指定成员区间内的成员 成员顺序是按字典倒序排序的 分数必须相同 在某些业务场景中,需要对一个字符串数组按名称的字典顺序进行倒序排列时,可以使用Redis中SortSet这种数据结构来处理。 2 语法 2.…

2018年第51周-JAVA虚拟机内存模型及垃圾回收机制(概要)

JAVA内存区域 运行时数据区域 根据《Java虚拟机规范(Java SE 7版)》的规定&#xff0c;Java虚拟机管理的内存将会包括以下运行时数据区域&#xff1a; 1.程序计数器 2.Java虚拟机栈&#xff08;在HotSpot虚拟机中本地方法栈和虚拟机栈合二为一&#xff09; 3.Java堆 4.方法区&a…

2018.12.23-bzoj-1396: 识别子串

题目描述&#xff1a; 算法标签&#xff1a;后缀自动机 思路&#xff1a; 一个串在后缀自动机中sz为1&#xff0c;即可对答案做出贡献&#xff0c;我们考虑可以造成哪几种贡献&#xff1a; minnlend[fa[x]]1,maxnlend[x]. 1.对于区间[endpos-maxnlen,endpos-minnlen]&#xff0…

php判断是否为命令行模式

function is_cli(){return preg_match("/cli/i", php_sapi_name()) ? 1 : 0; } 转载于:https://www.cnblogs.com/waw/p/10167245.html

Redis有序集合命令ZREMRANGEBYLEX详解与应用

Redis有序集合命令ZREMRANGEBYLEX详解与应用 本文是我在Redis中文网翻译团队翻译redis命令的相关内容&#xff0c;也是取得翻译团队同意后在CSDN同步发表 redis.cn翻译团队 也欢迎有兴趣、有能力的朋友加入&#xff01; 1 简介 ZREMRANGEBYLEX 是删除 “min” 与 “max” 之间…