我的生产服务器运行的是Linux,使用System V风格的init脚本。
通过以root用户身份运行service tomcat6 start
命令(service
在cwd /
下运行init脚本)来启动Tomcat。
然后Tomcat提供一个网页来写入new File(".").getAbsolutePath()
的结果,该结果显示为/usr/share/tomcat6/.
但是Tomcat init脚本(/etc/init.d/tomcat6
)没有提到CWD,也没有任何cd
命令。
鉴于Java本身无法更改当前工作目录,那么为什么/usr/share/tomcat6
成为了Tomcat的当前工作目录?它的启动过程中哪里更改了其cwd?
所涉及的Linux版本是CentOS6。
/etc/passwd
将tomcat用户的主目录定义为/usr/share/tomcat6
。 - user972946