Tomcat8在Ubuntu不同安装方式下执行根目录差异及配置疑问
嘿,这两个问题都是Ubuntu上Tomcat安装后的典型细节,我给你理清楚:
一、apt-get安装的Tomcat执行根路径设置方式
通过apt-get安装的Tomcat完全遵循Debian/Ubuntu的系统服务规范,它的执行根路径(也就是进程启动时的工作目录)是通过服务配置文件定义的:
- 如果你用的是systemd(Ubuntu 16.04及以后版本默认),可以查看
/etc/systemd/system/tomcat8.service文件,里面的WorkingDirectory=/var/lib/tomcat8这一行就是指定的执行根路径。 - 要是想修改这个路径,步骤很简单:
- 编辑上述服务文件,把
WorkingDirectory的值改成你需要的路径。 - 执行
systemctl daemon-reload让systemd识别配置变更,再重启Tomcat:systemctl restart tomcat8。 - 别忘了确保
tomcat8用户对新路径有足够的读写权限,不然进程启动会报错。
- 编辑上述服务文件,把
- 旧版Ubuntu用init.d脚本的话,路径定义在
/etc/init.d/tomcat8里,找带cd命令的行修改就行,改完重启服务service tomcat8 restart。
二、启动路径差异的原因
这两种安装方式的启动路径差异,本质是启动方式和配置规范的不同:
- apt-get安装的Tomcat:它被打包成系统服务运行,服务脚本(不管是systemd还是init.d)会强制指定工作目录为
/var/lib/tomcat8。这是Debian/Ubuntu软件包的标准做法——让服务进程在固定的、符合系统目录结构的路径下运行,方便统一管理日志、临时文件,同时也能更好地做权限隔离。 - 手动解压安装的Tomcat:这种方式没有绑定系统服务,启动时的工作目录就是你执行启动命令时所在的当前目录。你看到进程在
/下启动,说明你是在根目录下执行的./bin/catalina.sh start这类命令。要是你切换到Tomcat解压目录(比如/opt/tomcat)再启动,工作目录就会变成/opt/tomcat了。 - 补充一句:手动安装的Tomcat如果想固定工作目录,也可以在启动脚本里指定,或者通过设置
CATALINA_BASE环境变量来控制,但apt-get安装的版本已经通过服务配置帮你预设好了规范的路径。
内容的提问来源于stack exchange,提问作者membersound
相关产品推荐
相关产品推荐

