spring boot放在非root用户下无法创建日志和特定目录
2022-01-11 本文已影响0人
板栗炖牛肉
前言
-
环境
linux centos8.2 -
spring boot日志放在运行目录的
-
非root用户,限制了权限的
-
非权限问题,工作环境问题。权限问题绕道(开始以为是权限问题,后来发现写有权限目录是没问题的)
-
问题根源
System.getProperty("user.dir")我是用了这个命令取的运行目录,在windows上市正常的,在linux下的root下也是正常的,但是在其他用户上只能取到/ -
使用的ctl的
.service
解决方案
-
.service文件配置
[Unit]
Description=java
After=network.target
[Service]
#Type=forking
User=java
Group=java
ExecStart=/usr/bin/java -Duser.timezone=GMT+8 -Dfile.encoding=UTF-8 -jar /home/java/cloud.jar --spring.profiles.active=oss,common,sql,cache,tool,shiro,sentinel,rabbit,prod
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
~
- 解决
WorkingDirectory=/home/java添加一个工作目录。System.getProperty("user.dir")就能取到工作目录了。
[Unit]
Description=java
After=network.target
[Service]
#Type=forking
User=java
Group=java
WorkingDirectory=/home/java
ExecStart=/usr/bin/java -Duser.timezone=GMT+8 -Dfile.encoding=UTF-8 -jar /home/java/cloud.jar --spring.profiles.active=oss,common,sql,cache,tool,shiro,sentinel,rabbit,prod
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
~