Java Systemd:添加回登录后无法启动spring引导
我使用systemd服务运行spring boot应用程序:Java Systemd:添加回登录后无法启动spring引导,java,linux,spring-boot,systemd,Java,Linux,Spring Boot,Systemd,我使用systemd服务运行spring boot应用程序: [Unit] Description=Spring Boot 2333 application After=syslog.target [Service] WorkingDirectory=/var/springboot/online_ticket User=java-webapp-daemon ExecStart=/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar myapp.util
[Unit]
Description=Spring Boot 2333 application
After=syslog.target
[Service]
WorkingDirectory=/var/springboot/online_ticket
User=java-webapp-daemon
ExecStart=/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar myapp.utility-0.0.1-SNAPSHOT.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
在我添加logback-spring.xml以生成日志文件之前,它工作正常:
<property name="LOGS" value="./logs" />
<appender name="RollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/spring-boot-logger.log</file>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
</encoder>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily and when the file reaches 10 MegaBytes -->
<fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<MaxHistory>5</MaxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
journalctl-u myapp.service:
Feb 14 11:19:37 filesrv1 systemd[1]: Started My Spring Boot 2333 application.
Feb 14 11:19:37 filesrv1 systemd[1]: myapp.service: Main process exited, code=exited, status=1/FAILURE
Feb 14 11:19:37 filesrv1 systemd[1]: myapp.service: Unit entered failed state.
Feb 14 11:19:37 filesrv1 systemd[1]: myapp.service: Failed with result 'exit-code'.
~
~
ESCOC
08. --
code=exited, status=1/FAILURE
state.
exit-code'.
但是如果我使用命令java-jar手动运行jar,那么启动它就没有问题了&日志文件夹是在/var/springboot/online\u-ticket中创建的
我还用“chown java webapp daemon:java webapp daemon logs”更改了日志文件夹的所有者,但没有任何帮助
如何解决此问题?在
中,/logs
部分是相对的。手动启动时的工作目录可能与作为服务启动时的工作目录不同?我会尝试用绝对路径替换/logs
,仅用于测试。另外,当您手动启动它时,您是否以root用户身份启动它?您可以查看journald的说明吗?请查看我的上述更新。日志文件夹上的权限是什么?drwxrwxr-x 2 java webapp守护程序java webapp守护程序4096 Feb 14 14:29 logsHave是否尝试以特定用户身份启动应用程序?
Feb 14 11:19:37 filesrv1 systemd[1]: Started My Spring Boot 2333 application.
Feb 14 11:19:37 filesrv1 systemd[1]: myapp.service: Main process exited, code=exited, status=1/FAILURE
Feb 14 11:19:37 filesrv1 systemd[1]: myapp.service: Unit entered failed state.
Feb 14 11:19:37 filesrv1 systemd[1]: myapp.service: Failed with result 'exit-code'.
~
~
ESCOC
08. --
code=exited, status=1/FAILURE
state.
exit-code'.