接手一台用 Tomcat 跑着 Java Web 应用的 Linux CentOS 服务器,通过镜像的方式更换服务器后站点无法访问,发现是因为 Tomcat 不能在服务器启动后自动启动,于是基于 init.d 将 Tomcat 配置为以服务方式自动运行。
配置步骤如下:
- 在
/etc/init.d/
目录中添加配置文件 tomcat-app - 通过
chmod +x tomcat-app
命令将 tomcat-app 设置为可执行文件 - 通过
chkconfig --add tomcat-app
命令将 tomcat-app 添加到启动服务中 - 通过
chkconfig --list tomcat-app
命令检查是否成功添加到启动服务中 - 通过
service tomcat-app start
命令测试服务是否可以正常启动 - 重启服务器验证 tomcat-app 是否可以自动启动
tomcat-app 配置文件内容
配置要点:
- 注释中一定要添加 chkconfig ,不然添加到启动服务中时会报错 "service xxx does not support chkconfig"
- 要设置 JAVA_HOME 与 JRE_HOME 环境变量,不然启动服务时会报错 "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined"
具体配置如下:
#!/bin/bash
# chkconfig: 2345 80 20
export JAVA_HOME="/javaWork/jdk1.8.0_171"
export JRE_HOME="/javaWork/jdk1.8.0_171/jre"
TOMCAT_HOME=/usr/local/javaTom/apache-tomcat-9.0.12/bin
start() {
cd $TOMCAT_HOME
./startup.sh
}
stop() {
cd $TOMCAT_HOME
./shutdown.sh
}
case $1 in
start|stop) $1;;
restart) stop; start;;
*) echo "Run as $0 "; exit 1;;
esac
参考资料: