设置tomcat应用systemd启动服务

目的:

一般二进制安装的tomcat应用是没有配置systemd启动服务的,可以按照需求自行配置使用systemd服务启停tomcat应用会更加的方便。

一、配置Tomcat应用service服务

bash 复制代码
# 复制粘贴以下内容完成配置tomcat的systemd启停服务
cat > /etc/systemd/system/tomcat.service  << EOF
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

# 设置 JAVA 环境变量,修改为你的 JAVA_HOME 目录
Environment=JAVA_HOME=/usr/local/jdk1.8.0_161

# 设置 tomcat 应用pid文件
# Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid

# tomcat 应用安装目录, 修改成你的 tomcat 安装目录
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat

# 设置 JVM 参数,不建议直接在这里设置,可以在 bin目录下的 setenv.sh 文件配置jvm等相关参数
# Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'

# tomcat 启动命令,修改成你的启动命令的实际绝对路径
ExecStart=/opt/tomcat/bin/startup.sh
# tomcat 停止命令,修改成你的停止命令的实际绝对路径
ExecStop=/opt/tomcat/bin/shutdown.sh

# 运行用户,正常情况是使用非 root 用户,如 tomcat 用户
User=root
Group=root
UMask=0007

# 异常则自动尝试重启
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

EOF

# 重新加载 systemd
systemctl daemon-reload

# 启动 tomcat
systemctl start tomcat

# 停止 tomcat
systemctl stop tomcat

# 查看 tomcat 运行状态
systemctl status tomcat

二、演示例子

bash 复制代码
[root@lighthouse ~]# 
[root@lighthouse ~]# # 查看tomcat的service配置信息           
[root@lighthouse ~]# cat   /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

# 设置 JAVA 环境变量
Environment=JAVA_HOME=/usr/local/jdk1.8.0_161

# 设置 tomcat 应用pid文件
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid

# tomcat 应用安装目录
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat

# 设置 JVM 参数,不建议直接在这里设置,可以在 bin目录下的 setenv.sh 文件配置jvm等相关参数
# Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'

# tomcat 启动命令
ExecStart=/opt/tomcat/bin/startup.sh
# tomcat 停止命令
ExecStop=/opt/tomcat/bin/shutdown.sh

# 运行用户,正常情况是使用非 root 用户,如 tomcat 用户
User=root
Group=root
UMask=0007

# 异常则自动尝试重启
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
[root@lighthouse ~]# 
[root@lighthouse ~]# 
[root@lighthouse ~]# 
[root@lighthouse ~]# # 查看 tomcat 运行状态                  
[root@lighthouse ~]# systemctl status tomcat                 
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-07-19 09:36:06 CST; 19min ago
 Main PID: 1524 (java)
   CGroup: /system.slice/tomcat.service
           └─1524 /usr/local/jdk1.8.0_161/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager...

Jul 19 09:36:06 lighthouse systemd[1]: Starting Apache Tomcat Web Application Container...
Jul 19 09:36:06 lighthouse startup.sh[1515]: Tomcat started.
Jul 19 09:36:06 lighthouse systemd[1]: Started Apache Tomcat Web Application Container.
[root@lighthouse ~]# 
[root@lighthouse ~]# 
[root@lighthouse ~]# 
[root@lighthouse ~]# # 停止 tomcat 应用
[root@lighthouse ~]# systemctl stop  tomcat 
[root@lighthouse ~]# 
[root@lighthouse ~]# # 查看 tomcat 运行状态 
[root@lighthouse ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2023-07-19 09:56:33 CST; 41s ago
  Process: 7484 ExecStop=/opt/tomcat/bin/shutdown.sh (code=exited, status=1/FAILURE)
 Main PID: 1524 (code=exited, status=143)

Jul 19 09:36:06 lighthouse systemd[1]: Starting Apache Tomcat Web Application Container...
Jul 19 09:36:06 lighthouse startup.sh[1515]: Tomcat started.
Jul 19 09:36:06 lighthouse systemd[1]: Started Apache Tomcat Web Application Container.
Jul 19 09:56:33 lighthouse systemd[1]: Stopping Apache Tomcat Web Application Container...
Jul 19 09:56:33 lighthouse shutdown.sh[7484]: $CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted.
Jul 19 09:56:33 lighthouse systemd[1]: tomcat.service: control process exited, code=exited status=1
Jul 19 09:56:33 lighthouse systemd[1]: tomcat.service: main process exited, code=exited, status=143/n/a
Jul 19 09:56:33 lighthouse systemd[1]: Stopped Apache Tomcat Web Application Container.
Jul 19 09:56:33 lighthouse systemd[1]: Unit tomcat.service entered failed state.
Jul 19 09:56:33 lighthouse systemd[1]: tomcat.service failed.
[root@lighthouse ~]# 
[root@lighthouse ~]# 
[root@lighthouse ~]# # 启动 tomcat 应用
[root@lighthouse ~]# systemctl start  tomcat
[root@lighthouse ~]# 
[root@lighthouse ~]# 
[root@lighthouse ~]# 
[root@lighthouse ~]# # 查看 tomcat 运行状态 
[root@lighthouse ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-07-19 09:57:42 CST; 18s ago
  Process: 7484 ExecStop=/opt/tomcat/bin/shutdown.sh (code=exited, status=1/FAILURE)
  Process: 7933 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 7940 (java)
    Tasks: 30
   Memory: 93.3M
   CGroup: /system.slice/tomcat.service
           └─7940 /usr/local/jdk1.8.0_161/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager...

Jul 19 09:57:42 lighthouse systemd[1]: Starting Apache Tomcat Web Application Container...
Jul 19 09:57:42 lighthouse startup.sh[7933]: Tomcat started.
Jul 19 09:57:42 lighthouse systemd[1]: Started Apache Tomcat Web Application Container.
[root@lighthouse ~]# 
[root@lighthouse ~]# 
相关推荐
我要学编程(ಥ_ಥ)1 小时前
滑动窗口算法专题(1)
java·数据结构·算法·leetcode
niceffking1 小时前
JVM 一个对象是否已经死亡?
java·jvm·算法
真的很上进1 小时前
【Git必看系列】—— Git巨好用的神器之git stash篇
java·前端·javascript·数据结构·git·react.js
科研小白_d.s2 小时前
intellij-idea创建html项目
java·html·intellij-idea
XXXJessie2 小时前
c++249多态
java·c++·servlet
喝旺仔la2 小时前
VSCode的使用
java·开发语言·javascript
青年有志2 小时前
Web 服务器介绍 | 通过 Tomcat 说明其作用
服务器·前端·tomcat
骆晨学长2 小时前
基于Springboot的助学金管理系统设计与实现
java·spring boot·后端
尘浮生2 小时前
Java项目实战II基于Java+Spring Boot+MySQL的大型商场应急预案管理系统(源码+数据库+文档)
java·开发语言·数据库·spring boot·spring·maven·intellij-idea
dawn1912283 小时前
SpringMVC 中的域对象共享数据
java·前端·servlet