前言
-
环境
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
~
网友评论