저는 Minecraft 서버가 충돌하거나 중지될 경우 자동으로 다시 시작하기 위해 루프를 사용하고 있습니다. 이는 충돌이나 예약된 다시 시작에 유용하지만 때로는 서버를 다시 시작하는 대신 서버를 중지하고 싶을 때도 있습니다.
#!/bin/sh
while true
do
java ... args
sleep 5
done
이상적으로는 어떻게든 이 루프가 끝나도록 말할 수 있습니다.그리고/stop
두 가지 작업을 동시에 수행할 필요가 없도록 월드 서버에 명령을 전달합니다 .
저는 쉘 스크립팅을 처음 접했기 때문에 올바른 접근 방식이 확실하지 않습니다.
Ubuntu 18.xx(사용 가능한 경우)
답변1
나는 Panki의 의견에 동의합니다. 마인크래프트 서버를 서비스로 실행하는 것이 더 나은 것 같습니다.
기본적으로, "systemd" 디렉토리에 일부 파일을 추가하여 프로세스를 시작하라고 지시할 때 운영 체제가 프로세스를 계속 실행하고, 중지하라고 지시하면 프로세스를 중지할 수 있도록 해야 합니다.
설정하는 데 도움이 되는 많은 튜토리얼이 있습니다. 예를 들어:
상세한:https://linuxconfig.org/how-to-create-systemd-service-unit-in-linux
따라하기 쉬움:https://medium.com/@benmorel/creating-a-linux-service-with-systemd-611b5c8b91d6
Minecraft 관련:https://linuxize.com/post/how-to-install-minecraft-server-on-ubuntu-18-04/#creating-systemd-unit-file
"시작된" 상태를 유지하려면 서비스에 다음 줄을 추가해야 합니다.
Restart=always