使用systemctl停止后,服务保持失败状态

我们有一个简单的systemd脚本以服务方式启动MineCraft服务器。 SO是CentOS 7.这里的脚本:

[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 

启动服务工作正常,但停止时,服务保持失败状态。 看到:

 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) 

任何想法?

谢谢

    退出代码143意味着程序收到一个SIGTERM信号,指示它退出,但它没有正确处理信号。 这几乎总是由于编程错误造成的,并且在所有types的Java应用程序中都很常见。

    您应该能够通过将退出代码作为“成功”退出状态添加到单元文件中来抑制此情况:

     [Service] SuccessExitStatus=143