we have a simple systemd script to start a MineCraft server in a service fashion. The SO is CentOS 7. Here the script:
[Unit] Description=Minecraft Server After=syslog.target network.target [Service] Type=simple WorkingDirectory=/root/Minecraft ExecStart=/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui Restart=on-failure [Install] WantedBy=multi-user.target
Starting the service works fine but when stopping , the service remains in a failed state. See:
systemctl status minecraftd.service minecraftd.service - Minecraft Server Loaded: loaded (/usr/lib/systemd/system/minecraftd.service; disabled) Active: active (running) since Mon 2015-06-01 16:00:12 UTC; 18s ago Main PID: 20975 (java) CGroup: /system.slice/minecraftd.service └─20975 /bin/java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui systemctl stop minecraftd.service systemctl status minecraftd.service minecraftd.service - Minecraft Server Loaded: loaded (/usr/lib/systemd/system/minecraftd.service; disabled) Active: failed (Result: exit-code) since Mon 2015-06-01 16:01:37 UTC; 3s ago Process: 20975 ExecStart=/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui (code=exited, status=143) Main PID: 20975 (code=exited, status=143)
Exit code 143 means that the program received a SIGTERM signal to instruct it to exit, but it did not handle the signal properly. This is almost always due to programming errors, and is pretty common with Java applications of all types.
You should be able to suppress this by adding the exit code into the unit file as a “success” exit status:
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.