Я использую сервер Minecraft для моих друзей и отключил Raspberry Pi. Помимо лагов (из-за моего интернета, а не аппаратного обеспечения) сервер работает без сбоев, однако, мой Pi хочет отключаться очень часто (если консоль сервера падает, или экран решает закрыть этот сеанс и т. Д.) , Я хочу создать скрипт на python, который будет запускаться каждый день в полночь и полдень, чтобы выдавать несколько команд через консоль сервера и саму пи.
Доступ к консоли сервера осуществляется через screen -r Minecraft
, поэтому я могу закрыть сеанс SSH и оставить сервер работающим. Если сервер не запущен, его можно запустить с ./minecraft.sh
.
Вот, по сути, то, что я хочу сделать: (Извините, я знаю очень мало Python, кроме того, что мне нужно для навигации по консоли Pi) (Я больше знаком с C #, поэтому мне жаль, если мой код больше похож на этот, а не Python)
Примечание: Команды, введенные на экране консоли сервера -r minecraft, не требуют кавычек вокруг текста без команд I.E. Say Words будет отправлять слова в игровой чат, а Say Words - отправлять слова в игровой чат.
//SafeShutDown.py
//This code is in no way executable. I just typed it out as an outline. A lot is wrong with it I'm assuming.
Loop A;
If dateTime.Now == 12:00 or dateTime.Now == 24:00 {
screen -r Minecraft
say Server saving... //In minecraft console. Announces to players
autosave all //In minecraft console. Plugin to save the world
say Server is restarting in 1 minute. Please wait //In Minecraft console
wait 60s //In python
stop //Command to send within the process "Minecraft" to shutdown server
wait for process "Screen -r Minecraft" to terminate //This is what I need help with
reboot
Else { Go To A;}
// Other scripts here that starts at boot to run ./minecraft.sh and ./SafeShutDown.py from /home/Minecraft.
Я пытался заставить скрипты запускаться при загрузке, но безрезультатно. Предполагается, что Minecraft.sh запускается при загрузке, поэтому в случае его сбоя все равно будет работать (Minecraft.sh запускает сервер под экраном -r Minecraft, чтобы я мог добраться до него позже)
Редактировать: орфография, C # объяснение, лучший код.
Редактирование: дескрипторы команд Minecraft, добавленные объявления и сохранение состояния.