Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Systemd:添加回登录后无法启动spring引导_Java_Linux_Spring Boot_Systemd - Fatal编程技术网

Java Systemd:添加回登录后无法启动spring引导

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

我使用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>
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'.