温馨提示×

debian tomcat如何开机启动

小樊
49
2026-09-12 09:28:32
栏目: 智能运维

在 Debian 上让 Tomcat 开机自启动,常见有 systemd(推荐)sysvinit 两种方式。下面以 systemd(Debian 8+ 默认) 为主说明。


一、使用 systemd(推荐,Debian 8/9/10/11/12)

1. 假设环境

  • Tomcat 安装目录:/opt/tomcat
  • Java 目录:/usr/lib/jvm/java-11-openjdk-amd64
  • 运行用户:tomcat

2. 创建 tomcat 用户(如已存在可跳过)

useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
chown -R tomcat:tomcat /opt/tomcat

3. 创建 systemd 服务文件

nano /etc/systemd/system/tomcat.service

内容示例:

[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

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

[Install]
WantedBy=multi-user.target

4. 重载并启用开机启动

systemctl daemon-reload
systemctl enable tomcat
systemctl start tomcat

5. 验证

systemctl status tomcat

二、旧版 Debian(sysvinit,Debian 7 及以前)

1. 创建启动脚本

nano /etc/init.d/tomcat

示例:

#!/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: Tomcat
### END INIT INFO

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export CATALINA_HOME=/opt/tomcat

case "$1" in
  start)
    $CATALINA_HOME/bin/startup.sh
    ;;
  stop)
    $CATALINA_HOME/bin/shutdown.sh
    ;;
  restart)
    $CATALINA_HOME/bin/shutdown.sh
    sleep 5
    $CATALINA_HOME/bin/startup.sh
    ;;
esac
chmod +x /etc/init.d/tomcat
update-rc.d tomcat defaults

三、常见问题

1. 开机不启动?

  • 确认 systemctl is-enabled tomcat
  • 查看日志:journalctl -u tomcat

2. 端口被占用?

  • 修改 conf/server.xml 中的端口

3. 权限问题?

  • 确保 tomcat 用户对目录有写权限

如果你告诉我:

  • Debian 版本
  • Tomcat 安装方式(apt 或手动解压)
  • Java 版本

我可以给你完全对应你环境的配置

0