在ubuntu服务器20.04上
在这样的屏幕会话中,我为“我的世界”服务器创建了一个服务定义
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
#ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/home/minecraft
ExecStart=/usr/bin/screen -AmDS "minecraft-server" /usr/bin/java -Xmx12G -Xms4G -jar /home/minecraft/minecraft-server.jar nogui
ExecStop=/usr/bin/screen -r "minecraft-server" -X quit
ExecStopPost=kill -9 $(ps -ef | grep '[/]home/minecraft/minecraft-server.jar' | grep -v SCREEN | awk '{print $2}')
ExecStopPost=rm -f /home/minecraft/Blumentopf/session.lock
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target什么起作用
systemctl start minecraft.service⇒屏幕会话启动和用户管理可以进入它screen -AmDS "minecraft-server" /usr/bin/java -Xmx12G -Xms4G -jar screen -r "minecraft-server" -X quit退出正在运行的Min克拉夫特服务器什么不起作用
systemctl stop minecraft.service⇒--它只是挂起几秒钟,当它返回时,服务仍然在运行。是的,仍然在运行,没有重新启动(相同的PID,没有断开,没有新的日志)然后,我可以登录到屏幕会话并停止服务,而不需要由systemctl自动重新启动它。但到底怎么回事?这些命令可以正常工作,为什么systemctl不能在屏幕会话中停止(或重新启动)进程中的java?
发布于 2021-04-09 18:22:36
https://serverfault.com/questions/1059919
复制相似问题