Как перезапустить службу SystemD (экран) после сбоя из-за нехватки памяти

Я использую службу SystemD для управления сервером на базе Java (хорошо, это Minecraft: D) ​​через экран, например:

[Unit]
Description=mc@auth
After=local-fs.target network.target mysqld.service

[Service]
WorkingDirectory=/home/minecraft/auth
User=minecraft
Group=minecraft
Type=forking

Restart=always
RestartSec=5s

ExecStart=/bin/bash ./server.sh start

ExecStop=/bin/bash ./server.sh stop
ExecStop=/bin/bash -c "while ps -p $MAINPID > /dev/null; do /bin/sleep 1; done"

[Install]
WantedBy=multi-user.target

server.sh start просто запускает файл jar с помощью java - jar Example.jar и выводит консоль.

Как перезапустить эту службу, когда у меня возникает ошибка Out Of Memory? Кажется, что Java не выходит обратно в оболочку, когда происходит OOM.

0
задан 24 August 2020 в 19:11
1 ответ

Используйте java -jar Example.jar -XX:+CrashOnOutOfMemory в server.sh и установите Restart=on-failure в файле модуля Systemd .

1
ответ дан 24 August 2020 в 16:26

Теги

Похожие вопросы