systemctl方式
1.找到JDK位置(后面的配置需用到)
对于已经安装JDK,我们需要找出JDK的具体位置,可以参考以下命令
root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin# which java
/usr/local/jdk-17/jdk-17.0.11//bin/java
root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin# whereis java
java: /usr/bin/java /usr/share/java /usr/local/jdk-17/jdk-17.0.11/bin/java /usr/local/jdk1.8/bin/java
root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin#
find / -name java
根据以上显示可知JDK的安装目录为:/usr/local/jdk-17/jdk-17.0.11
Tomcat目录为:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19
2.tomcat配置pid
找到并编辑 tomcat/bin/catalina.sh
# Copy CATALINA_BASE from CATALINA_HOME if not already set
[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
# 设置pid。一定要加在CATALINA_BASE定义后面,要不然pid会生成到/下面
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
3.新建tomcat.service文件【非常重要:前提是完成第2步】
nano /lib/systemd/system/tomcat.service
nano /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk-17/jdk-17.0.11"
PIDFile=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/tomcat.pid
ExecStart=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
User=root
Group=root
[Install]
WantedBy=multi-user.target
[Unit] 表示这是基础信息
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息
Type 是服务类型
PIDFile 是服务的pid文件路径, 开启后,必须在tomcat的bin/catalina.sh中加入CATALINA_PID参数
ExecStart 是启动服务的命令
ExecReload 是重启服务的命令
ExecStop 是停止服务的指令
[Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
若是中间再次修改tomcat.service文件后需要执行下面命令使其生效:
systemctl daemon-reload
4.启动成功。若是第2步没有完成直接进入第3步后,启动服务会出现一个错误
5.设置开机自启
#设置开机自启动
systemctl enable tomcat.service
#停止开机自启动
systemctl disable tomcat.service
#启动Tomcat服务
systemctl start tomcat.service
#查看服务当前状态
systemctl status tomcat.service
#重新启动服务
systemctl restart tomcat.service
#查看所有已启动的服务
systemctl list-units --type=service
查询TOMCAT进程(或者干掉进程)
查询tomcat 进程
ps -ef | grep tomcat
kill -9 进程ID(备注:根据实际情况替换值)kill -9 856
{/tabs-pane}
{tabs-pane label="方式二"}
/etc/init.d 方式(待验证)
找到java、tomcat安装路径
find / -name java
复制tomcat/bin目录下的catalina.sh 到/etc/init.d目录下
cp /usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin/catalina.sh /etc/init.d/tomcat
将/etc/init.d/catalina.sh重命名为tomcat
mv /etc/init.d/catalina.sh tomcat
编辑tomcat文件,在头部添加内容(注意java、tomcat路径)
nano /etc/init.d/tomcat
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network $time
# Should-Stop: $network $time
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start tomcat daemon at boot time
# Description: Start tomcat daemon at boot time
### END INIT INFO
JAVA_HOME=/usr/local/jdk-17/jdk-17.0.11 JRE_HOME=/usr/local/jdk-17/jdk-17.0.11
CATALINA_HOME=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19
CATALINA_BASE=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19
修改tomcat权限
chmod +x /etc/init.d/tomcat
重新加载服务器配置
systemctl daemon-reload
启动服务
service tomcat start
添加到自启动服务
update-rc.d tomcat defaults
查看是否开机自启,目前是disable
systemctl is-enabled tomcat.service
将Tomcat服务设置为开机自启
systemctl enable tomcat.service
重启,使配置生效
sudo reboot
修改或创建/etc/rc.local文件
#!/bin/bash
#
# 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.
service tomcat start
exit 0
复制/etc/rc.local到/etc/rc0.d目录
cp /etc/rc.local /etc/rc0.d
给这两个文件添加可执行权限
chmod +x /etc/rc.local
chmod +x /etc/rc0.d/rc.local
重启服务器,tomcat或者tomcat下部署的项目查看是否配置成功
reboot
{/tabs-pane}
评论 (0)