Debian部署Tomcat 注册服务并设置开机启动

目录

写在前面

1.准备工作

2.在Linux下安装Tomcat

3.Tomcat注册服务并设置开机启动

 3.1.使用 rc.local 配置开机启动

3.2.使用/etc/init.d

3.3.systemd配置(通用方式)


        在Debian系统上安装Tomcat并将其注册为服务以及设置开机启动的步骤。Tomcat是一个开源的Java Servlet容器,可以用来运行Java Web应用程序。通过本文的指导,能够在Debian系统上快速安装Tomcat,并确保其可以在系统启动时自动启动。

搭建环境

Tomcat:apache-tomcat-8.5.91

Tomcat安装路径:/home/tomcat/

JDK:jdk1.8.0_202

JDK安装路径:/home/jdk1.8.0_202/

操作系统:debain12

1.准备工作

a)下载tomcat linux的包,地址:Apache Tomcat® - Apache Tomcat 8 Software Downloads,我们下载的版本是8.0,下载方式如图:         

b)因为tomcat的安装依赖于Java jdk,所以我们需要在判断linux系统下面是否安装jdk

  1)使用(Xshell)连接到Linux系统下面

  2)输入命令:java -version,如果显示jdk版本号,则证明已经安装,如果不显示,则证明没有安装,如果没有安装,请参考下面地址进行安装:

Debain11安装配置jdk

jdk离线安装包下载地址:

Index of java-local/jdk (huaweicloud.com)

oracle.com/java/technologies/downloads/

安装成功后验证jdk如图所示:  ​

2.在Linux下安装Tomcat

a)然后在Xshell中使用命令跳转到 home 下面创建者自己的文件夹:tomcat

b)然后使用Xftp将tomcat复制到tomcat文件夹下面,如图所示:

​ 

c)将上传的Tomcat8.0解压,解压之后重命名为tomcat,如图所示:

#可以直接解压并命名到home目录
cd /home/tomcat
tar -zxv -f apache-tomcat-8.5.91.tar.gz  

d)启动tomcat 

启动方式常用三种

方式一:当前会话启动

/home/tomcat/bin/startup.sh    #启动tomcat命令

出现如图上所示的信息,则表示启动成功。访问http://127.0.0.1:8080 ,如能够显示Tomcat的主页,则启动成功

ps -ef | grep 'tomcat'

查看我们刚才启动的tomcat服务:


进程id是9814,我们可以使用如下指令将其关闭

kill 9814

方式二: 带日志的当前会话启动

./catalina.sh run

与第一种方式不同的是,第二种方式启动后会显示日志,相当于当前Linux连接会话已经成为了控制台,不能再输入其它Linux指令,而与第一种方式相同的是,当当前连接关闭时,本次启动的tomcat服务也会随之关闭。当然,启动成功后我们也可以使用ctrl + c来直接关闭本次链接会话中tomcat的启动。

方式三:后台永久启动
最简单的写法:

nohup ./startup.sh &

手动指定tomcat启动时的日志路径:

nohup ./startup.sh > log.file 2>&1 & 

想要明白这两者的区别,就要看nohup的具体使用方法了:

>log.file是将command的输出重定向到log.file文件,即输出内容不打印到屏幕上,而是输出到log.file文件中。
2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了log.file文件,即将标准出错也输出到log.file文件中。最后一个&, 是让该命令在后台执行。
试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出。

e)停止Tomcat的命令

/home/tomcat/bin/shutdown.sh    #停止tomcat命令

f)环境变量配置

sudo vi /home/tomcat/bin/catalina.sh

 g)如果系统未配置jdk、tomcat环境变量,在tomcat/bin/catalina.sh添加CATALINA_HOME、CLASSPATH

#tomcat路径
CATALINA_HOME=/home/tomcat/
CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib

g)指定Tomcat的jdk版本

方法1. 在 tomcat/bin/setclasspath.sh 中添加 JAVA_HOME 和 JRE_HOME 的指向

JAVA_HOME=/home/jdk1.8.0_202
JRE_HOME=/home/jdk1.8.0_202/jre

3.Tomcat注册服务并设置开机启动

设置开机启动一共有三种方式,注册为服务常用两种

3.1.使用 rc.local 配置开机启动

直接在 /etc/rc.local 文件最后添加语句 /home/tomcat/bin/startup.sh,重启系统,运行ps -ef|grep java,出现如下信息,则说明tomcat服务自启动了!

/etc/rc.local里面的内容为开机执行的脚本

vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#添加startup.sh的路径
/home/tomcat/bin/startup.sh
exit 0

用这种方式配置的自启动服务将在root 下运行。 注意加在 exit 0上一行

3.2.使用/etc/init.d

/etc/init.d目录下为系统服务脚本

将脚本添加为系统服务的过程:

1.将脚本复制到/etc/init.d目录下

2.添加个755权限,

3.用chkconfig --add 服务名 进行添加

4.用chkconfig --list进行查看

5.用service 服务名 start|stop|restart 执行该服务

1进入tomcat下的bin目录

cd /home/tomcat/bin

 2)复制catalina.sh作为系统服务脚本

#重命名的tomcat为以后的服务名 
cp /home/tomcat/bin/catalina.sh /etc/init.d/tomcat    

3)修改脚本

vi /etc/init.d/tomcat

4)在脚本较前面的位置加下面两行注释

#chkconfig:2345 10 90
#description:Tomcat service

第一行是服务的配置:第一个数字是服务的运行级,2345表明这个服务的运行级是2、3、4和5级(Linux的运行级为0到6);第二个数字是启动优先级,数值从0到99;第三个数是停止优先级,数值也是从0到99。

第二行是对服务的描述

如果该注释有误,在添加服务时会出现“tomcat不支持chkconfig”的错误提示

5)在脚本中设置环境变量

同时在文件 /etc/init.d/tomcat

CATALINA_HOME=/home/tomcat/
CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib
JAVA_HOME=/home/jdk1.8.0_202

6)添加脚本的可执行权限

chmod 777 /etc/init.d/tomcat

7)添加为系统服务

chkconfig --add tomcat

8)查看系统服务列表

chkconfig --list

7.启动和停止tomcat

service tomcat start   #启动tomcat
service tomcat stop    #停止tomcat
service tomcat restart  #重启tomcat

/etc/init.d目录下为系统服务脚本

注意:启动服务时 出现一个,始终不知道这是什么错和什么原因,网上查了一下说执行一下这个命令  systemctl daemon-reload  ,然后再次重新启动Tomcat就启动成功了

3.3.systemd配置(通用方式)

        system daemon 系统守护进程。Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。Unit 一共分成12种。我们要设置开机自启动服务就要使用Service unit.

        假设tomcat根目录在/home/tomcat,在目录/lib/systemd/system/下新建文件tomcat.service,内容如下:

1)注册systemctl服务(我更习惯用nano编辑)

vi /lib/systemd/system/tomcat.service
或
vi /usr/lib/systemd/system/tomcat.service

 2)tomcat.service文件内容如下:

[Unit]
#Description指定当前服务的简单描述。
Description=tomcat8测试应用服务
#After表示当前服务在network.target之后启动,可以指定多个服务,以空格隔开。
After=network.target

[Service]
#ExecStart将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。
Type=forking
Environment='JAVA_HOME=/home/jdk1.8.0_202'
Environment='JRE_HOME=/home/jdk1.8.0_202/jre'
# ExecStart指定启动进程时执行的命令。
# ExecReload指定当该服务被要求重新载入配置时所执行的命令。另外,还有一个特殊的环境变量 $MAINPID 可用于表示主进程的P>
# ExecStop指定停止服务时执行的命令。
ExecStart=/home/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/home/tomcat/bin/shutdown.sh

#web服务设置私有/tmp或/var/tmp目录
PrivateTmp=true

[Install]
#“WantedBy=multi-user.target”表示当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
WantedBy=multi-user.target

3)重新加载systemd管理器的配置

systemctl daemon-reload

4)启动tomcat服务:

systemctl start tomcat
# tomcat启动的大致流程是startup.sh->catalina.sh->setclasspath.sh

5)检查Tomcat服务状态:

systemctl status tomcat

状态Active: active,代表启动成功

 6)设置开机启动如果没有错误,您可以启用Tomcat服务在引导时自动启动:

systemctl enable tomcat

常用命令汇总

命令         功能
systemctl stop tomcat.service 停止服务
sudo systemctl disable tomcat.service  取消开机自启动
systemctl restart tomcat.service 重启
systemctl enable tomcat.service 设置服务自启动
sudo systemctl status tomcat 检查Tomcat服务状态

猜你喜欢

转载自blog.csdn.net/qq_20957669/article/details/131797375