Tomcat 在 systemctl restart tomcat 命令执行后 不自动解war
现象:
Tomcat 在 systemctl restart tomcat 命令执行后 不自动解压通过sftp上传上去的war,
而如果直接去 bin目录执行 startup.sh 是可以的。
原因:
当前登录用户是root,sftp上传后,文件属于 root。
而 systemctl restart tomcat 后,运行tomcat的用户是 tomcat,
tomcat用户无权读取 属于root的war包。
另外 直接去 bin目录执行 startup.sh ,用户是root,有权限读取war,所以能自动解压。
解决:
chmod 777 xxx.war
systemctl restart tomcat 后,能自动解压war并运行该项目了。
延伸:
linux文件权限是一个容易被忽视的问题。
只要是上传上去的文件都要注意好权限问题。
通过 systemctl 执行的服务, 该服务的用户经常都是 某个服务专用的 用户。
对上传上去的文件很容易产生权限不够的问题。
浙公网安备 33010602011771号