tomcat8.5+jdk1.8安装、tomcat服务的shell脚本和service管理方式

目录

一.下载和安装

1.前提部署JDK环境

(1)到官网下载并上传到Linux(我的以jdk1.8.0_371为例)

(2)放到某个目录之后进行解压解包

(3)编辑/etc/profile文件在末尾添加以下内容

(4)刷新/etc/profile并查看java版本,能正常查看到版本即成功

2.安装tomcat

(1)到官网下载这个二进制包(我的以apache-tomcat-8.5.70为例)

(2)创建目录存放并解压解包,下载相关包

(3)切换到apache-tomcat-8.5.70/bin目录下进行启动、关闭等操作,能正常启动查看版本

(4)到浏览器验证成功即可

二.tomcat配置文件/目录简介

1.bin目录

2.conf目录

3.lib目录 

4.logs目录

5..temp目录 

6.webapps目录

7.work目录 

三.tomcat解决启动较慢问题

1.查看logs/catalina.out日志中当前的启动速度

2.查看当前有多少熵可以用于生成session随机数

3.下载rng-tools包,进一步增加熵数,验证后有启动时间缩减效果

四.tomcatweb管理功能(有较大安全风险)

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 

4.验证

点击右方server status等三个区域,使用用户配置中定义的用户名和密码登录即可查看管理相关内容

五.管理tomcat的service

1.确保有java环境和tomcat环境

2.配置service方式管理

(1)配置/etc/profile

(2)配置服务文件tomcat.service

 (3)重载配置,测试tomcat服务

(4)注意systemctl tomcat时的报错

2.通过shell脚本方式管理

(1) 编写shell脚本

(2)运行测试 


一.下载和安装

1.前提部署JDK环境

(1)到官网下载并上传到Linux(我的以jdk1.8.0_371为例)

2c66852cc4a74d2a83926d63e36d1034.png

注意:进入这个界面进行选择时可以先试用uname -a命令查看自己系统,x86_64就选择x64,选择合适的包,否则可能会出现cannot execute binary file: Exec format error报错

571c8b942ff74bc2954b9ba07f709452.png

[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

7e74a8db022141999d8aca1fdae654c3.png

(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         

46d236b998734113bf6dbe4ac347f334.png

二.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.验证

d097304349874b24a02d17baeb5cf7e4.png

点击右方server status等三个区域,使用用户配置中定义的用户名和密码登录即可查看管理相关内容

72153817988f46549456aa61bed30803.png

 0ce1b6415f334fa686bbf1115142eaa9.png

0ef7756023824f9e869d4530c9abf876.png

6f74c166dffb415187e80c3ba0ac3ad1.png

五.管理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]# 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

树下一少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值