Systemd: не удается запустить весеннюю загрузку после добавления входа - PullRequest
0 голосов
/ 13 февраля 2020

Я запускаю мое приложение весенней загрузки, используя службу systemd:

[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, все работало нормально. 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]: 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'.

Но если я запускаю jar вручную с помощью команды java -jar без проблем запускается и папка журналов создается в / var / springboot / online_ticket.

Я также изменил владельца папки журналов с помощью "chown java -webapp-daemon: java -webapp-daemon logs", но это не помогает.

Как устранить неполадки в этом вопрос

1 Ответ

0 голосов
/ 13 февраля 2020

В <property name="LOGS" value="./logs" /> часть ./logs является относительной. Может быть, рабочий каталог при запуске вручную отличается от запуска как службы? Я бы попытался заменить ./logs абсолютным путем только для тестирования. Также, когда вы запускаете его вручную, вы запускаете его как root пользователь?

...