Systemd:添加重新登录后无法启动spring boot [关闭]

问题描述 投票:-1回答:1
我使用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.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>

现在该服务无法启动。 “ systemctl status -l myapp”没有显示任何有用的提示:

myapp.service - Spring Boot 2333 application Loaded: loaded (/etc/systemd/system/myapp.service; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2020-02-13 15:33:02 +08; 1min 40s ago Process: 21440 ExecStart=/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar myapp.utility-0.0.1-SNAPSHOT.jar (code=exited, status=1/FAILURE) Main PID: 21440 (code=exited, status=1/FAILURE) CPU: 2ms Feb 13 15:33:02 filesrv1 systemd[1]: Started My Spring Boot 2333 application. Feb 13 15:33:02 filesrv1 systemd[1]: myapp.service: Main process exited, code=exited, status=1/FAILURE Feb 13 15:33:02 filesrv1 systemd[1]: myapp.service: Unit entered failed state. Feb 13 15:33:02 filesrv1 systemd[1]: myapp.service: Failed with result 'exit-code'.

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]: online-test.service: Main process exited, code=exited, status=1/FAILURE Feb 14 11:19:37 filesrv1 systemd[1]: online-test.service: Unit entered failed state. Feb 14 11:19:37 filesrv1 systemd[1]: online-test.service: Failed with result 'exit-code'. ~ ~ ESCOC 08. -- code=exited, status=1/FAILURE state. exit-code'.

但是如果我使用命令java -jar手动运行jar,启动就不会出现问题,并且在/ var / springboot / online_ticket中创建了logs文件夹。 

我还使用“ chown java-webapp-daemon:java-webapp-daemon日志”更改了日志文件夹所有者,但这没有帮助。

如何解决此问题?

java linux spring-boot systemd
1个回答
0
投票
<property name="LOGS" value="./logs" />中,./logs部分是相对的。作为服务启动时,手动启动工作目录时可能会有所不同吗?我会尝试将./logs替换为用于测试的绝对路径。另外,当您手动启动它时,您是否以root用户身份启动它?
© www.soinside.com 2019 - 2024. All rights reserved.