spring boot放在非root用户下无法创建日志和特定目录问题

前言

  • 环境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
~                             

你可能感兴趣的:(spring boot放在非root用户下无法创建日志和特定目录问题)