目录
(1)到官网下载并上传到Linux(我的以jdk1.8.0_371为例)
(4)刷新/etc/profile并查看java版本,能正常查看到版本即成功
(1)到官网下载这个二进制包(我的以apache-tomcat-8.5.70为例)
(3)切换到apache-tomcat-8.5.70/bin目录下进行启动、关闭等操作,能正常启动查看版本
1.查看logs/catalina.out日志中当前的启动速度
3.下载rng-tools包,进一步增加熵数,验证后有启动时间缩减效果
1.允许用户管理,修改用户配置tomcat/apache-tomcat-8.5.70/conf/tomcat-users.xml
2.允许app管理,修改tomcat/apache-tomcat-8.5.70/webapps/manager/META-INF/context.xml
3.允许主机管理,修改tomcat/apache-tomcat-8.5.70/webapps/host-manager/META-INF/context.xml
点击右方server status等三个区域,使用用户配置中定义的用户名和密码登录即可查看管理相关内容
一.下载和安装
1.前提部署JDK环境
(1)到官网下载并上传到Linux(我的以jdk1.8.0_371为例)
注意:进入这个界面进行选择时可以先试用uname -a命令查看自己系统,x86_64就选择x64,选择合适的包,否则可能会出现cannot execute binary file: Exec format error报错
[root@localhost ~]# uname -a
Linux localhost.localdomain 4.18.0-348.el7.x86_64 #1 SMP Tue Oct 19 15:14:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
链接:https://pan.baidu.com/s/1hWZPLzmpRmKd5Dwe3AQNig
提取码:lnpp
(2)放到某个目录之后进行解压解包
[root@localhost java]# ll
total 135960
drwxr-xr-x 8 root root 294 Aug 6 20:52 jdk1.8.0_371
-rw-r--r-- 1 root root 139219380 Aug 3 15:52 jdk-8u371-linux-x64.tar.gz
[root@localhost java]# pwd
/usr/java
(3)编辑/etc/profile文件在末尾添加以下内容
[root@localhost ~]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_371
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
(4)刷新/etc/profile并查看java版本,能正常查看到版本即成功
root@localhost java]# source /etc/profile
[root@localhost java]# java -version
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)
2.安装tomcat
(1)到官网下载这个二进制包(我的以apache-tomcat-8.5.70为例)
链接:https://pan.baidu.com/s/1Xi5P0SYx6Tw5COJor4cRbA
提取码:0bki
(2)创建目录存放并解压解包,下载相关包
[root@localhost tomcat]# ll
total 10320
drwxr-xr-x 9 tomcat tomcat 220 Aug 6 20:47 apache-tomcat-8.5.70
-rw-r--r-- 1 tomcat tomcat 10564666 Aug 3 14:51 apache-tomcat-8.5.70.tar.gz
[root@localhost tomcat]# pwd
/usr/local/tomcat
(3)切换到apache-tomcat-8.5.70/bin目录下进行启动、关闭等操作,能正常启动查看版本
[root@localhost tomcat]# cd apache-tomcat-8.5.70/bin/
[root@localhost bin]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/bin
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-8.5.70
Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-8.5.70
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-8.5.70/temp
Using JRE_HOME: /usr/java/jdk1.8.0_371
Using CLASSPATH: /usr/local/tomcat/apache-tomcat-8.5.70/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.70/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@localhost bin]# ./version.sh
Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-8.5.70
Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-8.5.70
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-8.5.70/temp
Using JRE_HOME: /usr/java/jdk1.8.0_371
Using CLASSPATH: /usr/local/tomcat/apache-tomcat-8.5.70/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.70/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/8.5.70
Server built: Aug 9 2021 16:17:14 UTC
Server number: 8.5.70.0
OS Name: Linux
OS Version: 3.10.0-1160.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_371-b11
JVM Vendor: Oracle Corporation
注意:tomcat的启动和关闭,使用相对路径或绝对路径去运行startup.sh或shutdown.sh文件,非管理员身份可更改/usr/lib/systemd/system/tomcat.service相关参数进行启动(见五)
(4)到浏览器验证成功即可
[root@localhost bin]# netstat -lntup | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 8267/java
二.tomcat配置文件/目录简介
1.bin目录
drwxr-x--- 2 root root 4096 Aug 3 15:57 bin #tomcat的各种管理脚本
[root@localhost bin]# ll #.bat用于windows,.sh用于Linux
total 872
-rw-r----- 1 root root 36317 Aug 10 2021 bootstrap.jar
-rw-r----- 1 root root 16840 Aug 10 2021 catalina.bat
-rwxr-x--- 1 root root 25294 Aug 10 2021 catalina.sh #真正用于启动tomcat,可以在里面设置各种参数
-rw-r----- 1 root root 1664 Aug 10 2021 catalina-tasks.xml
-rw-r----- 1 root root 2123 Aug 10 2021 ciphers.bat
-rwxr-x--- 1 root root 1997 Aug 10 2021 ciphers.sh
-rw-r----- 1 root root 25357 Aug 10 2021 commons-daemon.jar
-rw-r----- 1 root root 207420 Aug 10 2021 commons-daemon-native.tar.gz
-rw-r----- 1 root root 2040 Aug 10 2021 configtest.bat
-rwxr-x--- 1 root root 1922 Aug 10 2021 configtest.sh
-rwxr-x--- 1 root root 9100 Aug 10 2021 daemon.sh
-rw-r----- 1 root root 2091 Aug 10 2021 digest.bat
-rwxr-x--- 1 root root 1965 Aug 10 2021 digest.sh
-rw-r----- 1 root root 3460 Aug 10 2021 setclasspath.bat
-rwxr-x--- 1 root root 3708 Aug 10 2021 setclasspath.sh
-rw-r----- 1 root root 2020 Aug 10 2021 shutdown.bat
-rwxr-x--- 1 root root 1902 Aug 10 2021 shutdown.sh #关闭tomcat
-rw-r----- 1 root root 2022 Aug 10 2021 startup.bat
-rwxr-x--- 1 root root 1904 Aug 10 2021 startup.sh #启动tomcat
-rw-r----- 1 root root 51179 Aug 10 2021 tomcat-juli.jar
-rw-r----- 1 root root 425741 Aug 10 2021 tomcat-native.tar.gz
-rw-r----- 1 root root 4574 Aug 10 2021 tool-wrapper.bat
-rwxr-x--- 1 root root 5540 Aug 10 2021 tool-wrapper.sh
-rw-r----- 1 root root 2026 Aug 10 2021 version.bat
-rwxr-x--- 1 root root 1908 Aug 10 2021 version.sh #查看tomcat版本信息
2.conf目录
drwx------ 3 root root 254 Aug 3 15:58 conf #tomcat的配置文件目录
[root@localhost conf]# ll
total 224
drwxr-x--- 3 root root 23 Aug 3 15:58 Catalina
-rw------- 1 root root 13053 Aug 10 2021 catalina.policy #项目安全文件,防止欺骗代码,在使用startup.sh启动tomcat时加上-security参数才会生效
-rw------- 1 root root 7661 Aug 10 2021 catalina.properties #配置tomcat启动的相关信息
-rw------- 1 root root 1338 Aug 10 2021 context.xml #监视加载文件,监视的文件发生变化时会自动加载
-rw------- 1 root root 1149 Aug 10 2021 jaspic-providers.xml
-rw------- 1 root root 2313 Aug 10 2021 jaspic-providers.xsd
-rw------- 1 root root 3916 Aug 10 2021 logging.properties #tomcat日志文件的配置,格式、级别等等
-rw------- 1 root root 7589 Aug 10 2021 server.xml #tomcat的核心配置文件,端口号等
-rw------- 1 root root 2756 Aug 10 2021 tomcat-users.xml #tomcat管理用户配置文件
-rw------- 1 root root 2558 Aug 10 2021 tomcat-users.xsd
-rw------- 1 root root 171879 Aug 10 2021 web.xml #web应用相关的通用设置,过滤器、过期时间等等
3.lib目录
drwxr-x--- 2 root root 4096 Aug 3 15:57 lib #存放web调用依赖的jar包目录
[root@localhost lib]# ll
total 8728
-rw-r----- 1 root root 12353 Aug 10 2021 annotations-api.jar
-rw-r----- 1 root root 54385 Aug 10 2021 catalina-ant.jar
-rw-r----- 1 root root 121474 Aug 10 2021 catalina-ha.jar
-rw-r----- 1 root root 1723228 Aug 10 2021 catalina.jar
-rw-r----- 1 root root 78022 Aug 10 2021 catalina-storeconfig.jar
-rw-r----- 1 root root 295660 Aug 10 2021 catalina-tribes.jar
-rw-r----- 1 root root 2450404 Aug 10 2021 ecj-4.6.3.jar
-rw-r----- 1 root root 89944 Aug 10 2021 el-api.jar
-rw-r----- 1 root root 169227 Aug 10 2021 jasper-el.jar
-rw-r----- 1 root root 604688 Aug 10 2021 jasper.jar
-rw-r----- 1 root root 26847 Aug 10 2021 jaspic-api.jar
-rw-r----- 1 root root 61960 Aug 10 2021 jsp-api.jar
-rw-r----- 1 root root 249408 Aug 10 2021 servlet-api.jar
-rw-r----- 1 root root 10652 Aug 10 2021 tomcat-api.jar
-rw-r----- 1 root root 886569 Aug 10 2021 tomcat-coyote.jar
-rw-r----- 1 root root 285690 Aug 10 2021 tomcat-dbcp.jar
-rw-r----- 1 root root 73356 Aug 10 2021 tomcat-i18n-de.jar
-rw-r----- 1 root root 105580 Aug 10 2021 tomcat-i18n-es.jar
-rw-r----- 1 root root 157693 Aug 10 2021 tomcat-i18n-fr.jar
-rw-r----- 1 root root 178458 Aug 10 2021 tomcat-i18n-ja.jar
-rw-r----- 1 root root 177051 Aug 10 2021 tomcat-i18n-ko.jar
-rw-r----- 1 root root 46527 Aug 10 2021 tomcat-i18n-ru.jar
-rw-r----- 1 root root 161744 Aug 10 2021 tomcat-i18n-zh-CN.jar
-rw-r----- 1 root root 149149 Aug 10 2021 tomcat-jdbc.jar
-rw-r----- 1 root root 34876 Aug 10 2021 tomcat-jni.jar
-rw-r----- 1 root root 183139 Aug 10 2021 tomcat-util.jar
-rw-r----- 1 root root 214911 Aug 10 2021 tomcat-util-scan.jar
-rw-r----- 1 root root 236457 Aug 10 2021 tomcat-websocket.jar
-rw-r----- 1 root root 38466 Aug 10 2021 websocket-api.jar
4.logs目录
drwxr-x--- 2 root root 4096 Aug 6 16:09 logs #存放tomcat运行时日志文件,会输出到cataline.out中
[root@localhost logs]# ll
total 52
-rw-r----- 1 root root 6156 Aug 3 15:58 catalina.2023-08-03.log #以这种形式组成的是windows写=下日志文件输出的内容
-rw-r----- 1 root root 9528 Aug 6 16:09 catalina.2023-08-06.log
-rw-r----- 1 root root 15690 Aug 6 16:09 catalina.out
-rw-r----- 1 root root 0 Aug 3 15:58 host-manager.2023-08-03.log #这种形式是访问webapps下下的host-manager项目日志
-rw-r----- 1 root root 0 Aug 6 16:09 host-manager.2023-08-06.log
-rw-r----- 1 root root 459 Aug 3 15:58 localhost.2023-08-03.log #这种形式是只记录tomcat访问日志
-rw-r----- 1 root root 735 Aug 6 16:09 localhost.2023-08-06.log
-rw-r----- 1 root root 738 Aug 3 16:00 localhost_access_log.2023-08-03.txt #这种形式是访问tomcat下所有项目日志记录
-rw-r----- 1 root root 72 Aug 6 16:10 localhost_access_log.2023-08-06.txt
-rw-r----- 1 root root 0 Aug 3 15:58 manager.2023-08-03.log #这种形式是访问webapps下manager项目日志
-rw-r----- 1 root root 0 Aug 6 16:09 manager.2023-08-06.log
5..temp目录
drwxr-x--- 2 root root 30 Aug 3 15:57 temp #存放临时文件,可以删除
6.webapps目录
drwxr-x--- 7 root root 81 Aug 10 2021 webapps #web程序存放目录,默认有5个项目,支持文件夹、war包、jar包形式
[root@localhost webapps]# ll
total 4
drwxr-x--- 15 root root 4096 Aug 3 15:57 docs
drwxr-x--- 7 root root 99 Aug 3 15:57 examples
drwxr-x--- 6 root root 79 Aug 3 15:57 host-manager
drwxr-x--- 6 root root 114 Aug 3 15:57 manager
drwxr-x--- 3 root root 223 Aug 3 15:57 ROOT
7.work目录
drwxr-x--- 3 root root 22 Aug 3 15:58 work #存放因编译产生的.java和.class文件,重启tomcat可以进行清理
三.tomcat解决启动较慢问题
1.查看logs/catalina.out日志中当前的启动速度
[root@localhost logs]# tail -f /usr/local/tomcat/apache-tomcat-8.5.70/logs/catalina.out
06-Aug-2023 22:34:50.772 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/docs]
06-Aug-2023 22:34:50.783 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/docs] has finished in [11] ms
06-Aug-2023 22:34:50.783 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/examples]
06-Aug-2023 22:34:50.913 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/examples] has finished in [130] ms
06-Aug-2023 22:34:50.913 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/host-manager]
06-Aug-2023 22:34:50.926 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/host-manager] has finished in [13] ms
06-Aug-2023 22:34:50.927 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/manager]
06-Aug-2023 22:34:50.941 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/manager] has finished in [14] ms
06-Aug-2023 22:34:50.948 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
06-Aug-2023 22:34:50.954 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 359 ms
这里我的其实还不算耗时,如果启动时间很长,是session引起的随机数问数量导致的,Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥。为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥。
2.查看当前有多少熵可以用于生成session随机数
[root@localhost ~]# cat /proc/sys/kernel/random/entropy_avail
1091
3.下载rng-tools包,进一步增加熵数,验证后有启动时间缩减效果
[root@localhost ~]# yum install -y rng-tools
[root@localhost ~]# systemctl start rngd
[root@localhost ~]# systemctl enable rngd
[root@localhost ~]# cat /proc/sys/kernel/random/entropy_avail
3114
[root@localhost ~]# systemctl restart tomcat
[root@localhost tail -f /usr/local/tomcat/apache-tomcat-8.5.70/logs/catalina.out
07-Aug-2023 09:44:39.390 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/docs]
07-Aug-2023 09:44:39.398 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/docs] has finished in [8] ms
07-Aug-2023 09:44:39.399 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/examples]
07-Aug-2023 09:44:39.524 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/examples] has finished in [125] ms
07-Aug-2023 09:44:39.524 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/host-manager]
07-Aug-2023 09:44:39.536 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/host-manager] has finished in [12] ms
07-Aug-2023 09:44:39.536 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/manager]
07-Aug-2023 09:44:39.548 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/apache-tomcat-8.5.70/webapps/manager] has finished in [12] ms
07-Aug-2023 09:44:39.553 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
07-Aug-2023 09:44:39.557 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 339 ms
四.tomcatweb管理功能(有较大安全风险)
1.允许用户管理,修改用户配置tomcat/apache-tomcat-8.5.70/conf/tomcat-users.xml
[root@localhost conf]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/conf
[root@localhost conf]# vim tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="tomcat" password="123456" roles="admin-gui,manager-gui,managerjmx,manager-script,manager-status,admin-script"/>
</tomcat-users> #在这个结束标识前添加以上内容
2.允许app管理,修改tomcat/apache-tomcat-8.5.70/webapps/manager/META-INF/context.xml
[root@localhost META-INF]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/webapps/manager/META-INF
[root@localhost META-INF]# vim context.xml #找到以下行,默认是本地地址,可以书写具体地址和网段,也可以通过"^.*$"允许所有主机
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.2.*" />
3.允许主机管理,修改tomcat/apache-tomcat-8.5.70/webapps/host-manager/META-INF/context.xml
[root@localhost META-INF]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/webapps/host-manager/META-INF
[root@localhost META-INF]# vim context.xml #修改方式同上
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.2.*" />
4.验证
点击右方server status等三个区域,使用用户配置中定义的用户名和密码登录即可查看管理相关内容
五.管理tomcat的service
1.确保有java环境和tomcat环境
如若没有请查看上文
[root@localhost java]# java -version
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)
[root@localhost ~]# /usr/local/tomcat/apache-tomcat-8.5.70/bin/version.sh
Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-8.5.70
Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-8.5.70
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-8.5.70/temp
Using JRE_HOME: /usr/java/jdk1.8.0_371
Using CLASSPATH: /usr/local/tomcat/apache-tomcat-8.5.70/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.70/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/8.5.70
Server built: Aug 9 2021 16:17:14 UTC
Server number: 8.5.70.0
OS Name: Linux
OS Version: 3.10.0-1160.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_371-b11
JVM Vendor: Oracle Corporation
2.配置service方式管理
(1)配置/etc/profile
路径使用你的jdk和tomcat的目录路径
[root@localhost ~]# tail -4 /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_371
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
[root@localhost ~]# source /etc/profile
(2)配置服务文件tomcat.service
根据自己的实际目录进行配置,JAVA_HOME=和CATALINA_HOME=两个的配置和上面/etc/profile保持一致
[root@localhost system]# pwd
/usr/lib/systemd/system
[root@localhost system]# vim tomcat.service
# Systemd unit file for default tomcat
#
# To create clones of this service:
# DO NOTHING, use tomcat@.service instead.
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/java/jdk1.8.0_371
Environment=CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
ExecStart=/usr/local/tomcat/apache-tomcat-8.5.70/bin/startup.sh
ExecStop=/usr/local/tomcat/apache-tomcat-8.5.70/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
SuccessExitStatus=143
User=tomcat
Group=tomcat
PrivateTmp=true
[Install]
WantedBy=multi-user.target
此处是配置的tomcat用户进行启动(可以更改为已有用户,需考虑权限问题),那么还需要将tomcat的相关所有文件属主和属组改为tomcat
[root@localhost ~]# chown -R tomcat:tomcat /usr/local/tomcat/
(3)重载配置,测试tomcat服务
[root@localhost system]# systemctl daemon-reload
[root@localhost system]# systemctl stop tomcat
[root@localhost system]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Aug 06 22:24:30 localhost.localdomain systemd[1]: tomcat.servic...
Aug 06 22:24:42 localhost.localdomain systemd[1]: Starting Apac...
Aug 06 22:24:42 localhost.localdomain systemd[1]: Started Apach...
Aug 06 22:33:29 localhost.localdomain systemd[1]: Stopping Apac...
Aug 06 22:33:29 localhost.localdomain systemd[1]: Stopped Apach...
Aug 06 22:33:29 localhost.localdomain systemd[1]: Starting Apac...
Aug 06 22:33:29 localhost.localdomain startup.sh[33059]: Tomcat...
Aug 06 22:33:29 localhost.localdomain systemd[1]: Started Apach...
Aug 06 22:34:20 localhost.localdomain systemd[1]: Stopping Apac...
Aug 06 22:34:20 localhost.localdomain systemd[1]: Stopped Apach...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost system]#
[root@localhost system]# systemctl start tomcat
[root@localhost system]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2023-08-06 22:34:50 CST; 1s ago
Process: 33218 ExecStart=/usr/local/tomcat/apache-tomcat-8.5.70/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 33225 (java)
CGroup: /system.slice/tomcat.service
└─33225 /usr/java/jdk1.8.0_371/bin/java -Djava.util....
Aug 06 22:34:50 localhost.localdomain systemd[1]: Starting Apac...
Aug 06 22:34:50 localhost.localdomain systemd[1]: Started Apach...
Hint: Some lines were ellipsized, use -l to show in full.
(4)注意systemctl tomcat时的报错
Cannot find /usr/local/tomcat/bin/setclasspath.sh
可能有效的解决方法:检查自己的CATALINA_HOME=和TOMCAT_HOME配置情况
我的配置在/etc/profile下的如下
[root@localhost bin]# tail -4 /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_371
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
使其立即生效
[root@localhost bin]# source /etc/profile
后将/usr/lib/systemd/system/tomcat.service中的CATALINA_HOME=和TOMCAT_HOME和/etc/profile改一致
[root@localhost system]# pwd
/usr/lib/systemd/system
[root@localhost system]# cat tomcat.service
# Systemd unit file for default tomcat
#
# To create clones of this service:
# DO NOTHING, use tomcat@.service instead.
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/java/jdk1.8.0_371
Environment=CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.70
ExecStart=/usr/local/tomcat/apache-tomcat-8.5.70/bin/startup.sh
ExecStop=/usr/local/tomcat/apache-tomcat-8.5.70/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
SuccessExitStatus=143
User=tomcat
Group=tomcat
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载再重启解决
[root@localhost system]# systemctl daemon-reload
[root@localhost system]# systemctl restart tomcat
[root@localhost system]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2023-08-06 22:02:45 CST; 5s ago
Process: 31233 ExecStop=/usr/local/tomcat/apache-tomcat-8.5.70/bin/shutdown.sh (code=exited, status=0/SUCCESS)
Process: 31265 ExecStart=/usr/local/tomcat/apache-tomcat-8.5.70/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 31272 (java)
CGroup: /system.slice/tomcat.service
└─31272 /usr/java/jdk1.8.0_371/bin/java -Djava.util....
Aug 06 22:02:45 localhost.localdomain systemd[1]: Starting Apac...
Aug 06 22:02:45 localhost.localdomain systemd[1]: Started Apach...
Hint: Some lines were ellipsized, use -l to show in full.
2.通过shell脚本方式管理
(1) 编写shell脚本
[root@localhost tomcat]# vim tomcatmg.sh
#!/bin/bash
tomcat_home=/tomcat/apache-tomcat-8.5.70
tomcatdown=$tomcat_home/bin/shutdown.sh
tomcatstart=$tomcat_home/bin/startup.sh
pidtomcat=`ps -ef | grep $tomcat_home | grep -v "grep" | awk '{print $2}'`
case $1 in
start)
$tomcatstart
echo "tomcat启动"
;;
stop)
$tomcatdown
echo "tomcat关闭"
kill -9 $pidtomcat
;;
restart)
$tomcatdown
kill -9 $pidtomcat
sleep 2
$tomcatstart
echo "tomcat重启"
;;
esac
(2)运行测试
[root@localhost tomcat]# vim tomcatmg,sh
[root@localhost tomcat]# bash tomcatmg.sh stop
Using CATALINA_BASE: /tomcat/apache-tomcat-8.5.70
Using CATALINA_HOME: /tomcat/apache-tomcat-8.5.70
Using CATALINA_TMPDIR: /tomcat/apache-tomcat-8.5.70/temp
Using JRE_HOME: /home/install/jdk/jdk1.8.0_371
Using CLASSPATH: /tomcat/apache-tomcat-8.5.70/bin/bootstrap.jar:/tomcat/apache-tomcat-8.5.70/bin/tomcat-juli.jar
Using CATALINA_OPTS:
tomcat关闭
[root@localhost tomcat]# netstat -lntup | grep 8080
[root@localhost tomcat]# bash tomcatmg.sh start
Using CATALINA_BASE: /tomcat/apache-tomcat-8.5.70
Using CATALINA_HOME: /tomcat/apache-tomcat-8.5.70
Using CATALINA_TMPDIR: /tomcat/apache-tomcat-8.5.70/temp
Using JRE_HOME: /home/install/jdk/jdk1.8.0_371
Using CLASSPATH: /tomcat/apache-tomcat-8.5.70/bin/bootstrap.jar:/tomcat/apache-tomcat-8.5.70/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
tomcat启动
[root@localhost tomcat]# netstat -lntup | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 8937/java
[root@localhost tomcat]# bash tomcatmg.sh restart
Using CATALINA_BASE: /tomcat/apache-tomcat-8.5.70
Using CATALINA_HOME: /tomcat/apache-tomcat-8.5.70
Using CATALINA_TMPDIR: /tomcat/apache-tomcat-8.5.70/temp
Using JRE_HOME: /home/install/jdk/jdk1.8.0_371
Using CLASSPATH: /tomcat/apache-tomcat-8.5.70/bin/bootstrap.jar:/tomcat/apache-tomcat-8.5.70/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Using CATALINA_BASE: /tomcat/apache-tomcat-8.5.70
Using CATALINA_HOME: /tomcat/apache-tomcat-8.5.70
Using CATALINA_TMPDIR: /tomcat/apache-tomcat-8.5.70/temp
Using JRE_HOME: /home/install/jdk/jdk1.8.0_371
Using CLASSPATH: /tomcat/apache-tomcat-8.5.70/bin/bootstrap.jar:/tomcat/apache-tomcat-8.5.70/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
tomcat重启
[root@localhost tomcat]# netstat -lntup | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 9005/java
[root@localhost tomcat]#