欢迎光临海门区白事服务网
详情描述

一、Linux系统(Systemd方式)

1. 创建服务文件

sudo vim /etc/systemd/system/tomcat.service

2. 编辑服务配置

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

# 根据实际路径修改以下配置
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M'
Environment='JAVA_OPTS=-Djava.awt.headless=true'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

3. 设置权限并启用

# 重新加载systemd配置
sudo systemctl daemon-reload

# 设置开机启动
sudo systemctl enable tomcat

# 启动服务
sudo systemctl start tomcat

# 查看状态
sudo systemctl status tomcat

二、Linux系统(SysVinit方式)

1. 创建启动脚本

sudo vim /etc/init.d/tomcat

2. 脚本内容

#!/bin/bash
### BEGIN INIT INFO
# Provides:        tomcat
# Required-Start:  $network
# Required-Stop:   $network
# Default-Start:   2 3 4 5
# Default-Stop:    0 1 6
# Short-Description: Start/Stop Tomcat server
### END INIT INFO

TOMCAT_USER=tomcat
CATALINA_HOME=/opt/tomcat

start() {
    echo "Starting Tomcat..."
    su - $TOMCAT_USER -c "$CATALINA_HOME/bin/startup.sh"
}

stop() {
    echo "Stopping Tomcat..."
    su - $TOMCAT_USER -c "$CATALINA_HOME/bin/shutdown.sh"
}

case $1 in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 5
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
exit 0

3. 设置权限并启用

# 添加执行权限
sudo chmod +x /etc/init.d/tomcat

# 添加到开机启动(Ubuntu/Debian)
sudo update-rc.d tomcat defaults

# 添加到开机启动(CentOS/RHEL)
sudo chkconfig --add tomcat
sudo chkconfig tomcat on

三、Windows系统

方法1:使用Tomcat自带服务安装

# 进入Tomcat的bin目录
cd C:\apache-tomcat\bin

# 安装服务(以管理员身份运行cmd)
service.bat install

# 卸载服务
service.bat remove

方法2:手动创建Windows服务

# 使用sc命令创建服务
sc create Tomcat9 binPath= "\"C:\apache-tomcat\bin\tomcat9.exe\" //RS//Tomcat9" DisplayName= "Apache Tomcat 9" start= auto

# 设置服务描述
sc description Tomcat9 "Apache Tomcat 9 Servlet Container"

四、Tomcat启动参数优化

1. 修改catalina.sh/catalina.bat

# Linux: catalina.sh
JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m"

# Windows: catalina.bat
set "JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m"

2. 设置setenv.sh/setenv.bat(推荐)

# Linux: setenv.sh
export CATALINA_OPTS="-Xms1024m -Xmx2048m -XX:+UseG1GC"
export JAVA_OPTS="-Dfile.encoding=UTF-8"

# Windows: setenv.bat
set CATALINA_OPTS=-Xms1024m -Xmx2048m -XX:+UseG1GC
set JAVA_OPTS=-Dfile.encoding=UTF-8

五、验证自启动设置

1. 重启系统测试

# Linux
sudo reboot

# 重启后检查服务状态
systemctl status tomcat
ps -ef | grep tomcat

2. 检查日志

# 查看启动日志
tail -f /opt/tomcat/logs/catalina.out

# 查看systemd日志
journalctl -u tomcat -f

六、常见问题解决

1. 权限问题

# 创建专用用户
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat

# 设置目录权限
sudo chown -R tomcat: /opt/tomcat
sudo chmod +x /opt/tomcat/bin/*.sh

2. 端口占用

# 检查端口占用
netstat -tlnp | grep :8080

# 修改Tomcat端口
# 编辑 server.xml
vi /opt/tomcat/conf/server.xml
# 修改 Connector port="8080"

3. 内存不足

# 调整JVM内存参数
CATALINA_OPTS="-Xms512m -Xmx2048m -XX:MaxMetaspaceSize=256m"

七、最佳实践建议

使用专用用户:为Tomcat创建非root用户运行 日志分离:配置日志轮转,避免日志文件过大 监控配置:设置服务监控和告警 安全加固:定期更新Tomcat版本,配置安全策略 备份配置:备份server.xml等配置文件

选择适合你操作系统和环境的方法进行配置即可。

相关帖子
从现代食品科学角度看,“嫦娥奔月”与中秋节月饼的传说关联是如何形成的?
从现代食品科学角度看,“嫦娥奔月”与中秋节月饼的传说关联是如何形成的?
远程办公与7小时工作制结合,是否代表了未来主流办公模式的发展方向?
远程办公与7小时工作制结合,是否代表了未来主流办公模式的发展方向?
在竞争激烈的环境下,如何看待“失败”这个普遍存在却又难以言说的经历?
在竞争激烈的环境下,如何看待“失败”这个普遍存在却又难以言说的经历?
如果每天运动两小时,应该如何合理分配不同运动类型的训练时长?
如果每天运动两小时,应该如何合理分配不同运动类型的训练时长?
夏之始盛:从夏至三候“鹿角解”说起,解锁古人观夏的自然智慧密码
夏之始盛:从夏至三候“鹿角解”说起,解锁古人观夏的自然智慧密码
城市公共空间的设计,如何能在满足大众需求时兼顾流浪者的尊严?
城市公共空间的设计,如何能在满足大众需求时兼顾流浪者的尊严?
除了住房,2026年哪些消费类目的价格上涨对生活成本指数影响最大?
除了住房,2026年哪些消费类目的价格上涨对生活成本指数影响最大?
对比六大行房屋抵押贷款利率,哪家银行的资金成本最低最划算?
对比六大行房屋抵押贷款利率,哪家银行的资金成本最低最划算?
遇到定制家具商家中途加价或更换材料,依据合同如何处理?
遇到定制家具商家中途加价或更换材料,依据合同如何处理?
持国外驾照的华侨回国定居后,如何换领国内的机动车驾驶证?
持国外驾照的华侨回国定居后,如何换领国内的机动车驾驶证?
老旧小区改造后新增的停车位,其收费标准应如何合理确定?
老旧小区改造后新增的停车位,其收费标准应如何合理确定?
《早发白帝城》的情绪常被解读成“遇赦狂喜”,从哪些字眼能读出这种速度感?
《早发白帝城》的情绪常被解读成“遇赦狂喜”,从哪些字眼能读出这种速度感?
办理押车贷款流程前,车辆违章处理完毕是必须要做的吗?
办理押车贷款流程前,车辆违章处理完毕是必须要做的吗?
暴雨蓝色预警和黄色预警差在哪,普通市民感受得到吗?
暴雨蓝色预警和黄色预警差在哪,普通市民感受得到吗?
黄金的提炼过程是怎样的?现代技术如何确保它的高纯度?
黄金的提炼过程是怎样的?现代技术如何确保它的高纯度?
自家那台骑了好几年的旧电动车,按2026年新规到底算非机动车还是机动车?
自家那台骑了好几年的旧电动车,按2026年新规到底算非机动车还是机动车?
在同意一份订阅协议前,有哪些关键条款是我们必须仔细阅读的?
在同意一份订阅协议前,有哪些关键条款是我们必须仔细阅读的?
我们如何简单区分可用于回收的煎炸废油和不可回收的厨余油脂?
我们如何简单区分可用于回收的煎炸废油和不可回收的厨余油脂?
离婚人士如何办理房屋抵押贷款?详解产权归属与申请材料的特殊性
离婚人士如何办理房屋抵押贷款?详解产权归属与申请材料的特殊性
2026年各地对于享受长期护理险待遇,是否有设置一定的等待期限制?
2026年各地对于享受长期护理险待遇,是否有设置一定的等待期限制?