在 tomcat 中,catalina.sh(linux/macos)或 catalina.bat(windows)是 核心的启动和关闭脚本,用于控制 tomcat 服务器的运行。它是 tomcat 的“主控脚本”,负责设置环境变量、启动/关闭 jvm 进程,并传递参数给 tomcat 的核心组件。
catalina.sh的主要功能
启动/停止 tomcat
- 通过
start、stop、run等命令控制 tomcat 生命周期。 - 例如:
./catalina.sh start # 后台启动 tomcat ./catalina.sh run # 前台启动(日志输出到控制台) ./catalina.sh stop # 停止 tomcat
- 通过
设置 jvm 和 tomcat 环境变量
- 加载
setenv.sh(如果存在)来配置自定义环境变量(如java_opts、catalina_opts)。 - 例如,在
setenv.sh中配置 jvm 内存:export java_opts="-xms512m -xmx1024m"
- 加载
传递参数给 tomcat 的 bootstrap 类
- 最终会调用 java 的
org.apache.catalina.startup.bootstrap类来启动 tomcat。
- 最终会调用 java 的
管理日志输出
- 控制标准输出/错误日志的路径(默认重定向到
logs/catalina.out)。
- 控制标准输出/错误日志的路径(默认重定向到
调试支持
- 支持调试模式(如
jpda start启用远程调试)。
- 支持调试模式(如
常见用法示例
1.启动 tomcat
cd $catalina_home/bin # 进入 tomcat 的 bin 目录 ./catalina.sh start # 后台启动
2.前台运行(开发调试)
./catalina.sh run # 日志直接输出到控制台
3.停止 tomcat
./catalina.sh stop # 优雅关闭
4.强制终止(kill)
如果 stop 无效,可以强制终止进程:
ps -ef | grep tomcat # 查找 tomcat 的 pid kill -9 <pid> # 强制终止
5.启用远程调试
./catalina.sh jpda start # 默认监听 8000 端口
与其他脚本的关系
startup.sh / shutdown.sh
这两个脚本实际是 catalina.sh 的快捷方式:- startup.sh → 调用 catalina.sh start
- shutdown.sh → 调用 catalina.sh stop
直接使用 catalina.sh 更灵活。
setenv.sh
自定义环境变量脚本(需手动创建),catalina.sh 会自动加载它。
关键环境变量
| 变量名 | 作用 |
|---|---|
| catalina_home | tomcat 安装目录 |
| catalina_base | 多实例部署时的实例目录 |
| java_opts | jvm 参数(内存、gc 等) |
| catalina_opts | tomcat 专属 jvm 参数 |
| catalina_out | 指定日志输出文件 |
注意事项
- 不要直接修改 catalina.sh
自定义配置应通过 setenv.sh 或 java_opts 实现。 - 权限问题
确保脚本有可执行权限:chmod +x *.sh
- 多实例部署
通过catalina_base区分不同实例的配置。
总结
catalina.sh 是 tomcat 的核心控制脚本,负责:
✅ 启动/停止服务器
✅ 配置 jvm 和 tomcat 环境
✅ 管理日志和调试
建议通过 setenv.sh 自定义配置,而非直接修改该脚本。
到此这篇关于tomcat里catalina.sh的使用小结的文章就介绍到这了,更多相关tomcat catalina.sh内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论