Cómo reiniciar el servicio SystemD (pantalla) después de un fallo por falta de memoria

Cómo reiniciar el servicio SystemD (pantalla) después de un fallo por falta de memoria

Estoy usando el servicio SystemD para controlar el servidor basado en Java (¡OK! Es Minecraft :D) a través de una pantalla como esta:

[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 startsimplemente inicia el archivo jar java -jar Example.jary genera la consola.

¿Cómo reiniciar este servicio cuando aparece el error Sin memoria? Java parece no volver al shell cuando ocurre OOM.

Respuesta1

Úselo java -jar Example.jar -XX:+CrashOnOutOfMemoryen server.shy configúrelo Restart=on-failureen el archivo de unidad Systemd.

información relacionada