timvisee / lazymc

💤 Put your Minecraft server to rest when idle.
GNU General Public License v3.0
552 stars 14 forks source link

Support mineos start stop ? #46

Closed tyjtyj closed 1 year ago

tyjtyj commented 1 year ago

I managed to use command to start the server. However how to send sigterm to send command stop

Start /usr/games/minecraft/mineos_console.js -s[servername] start

Stop /usr/games/minecraft/mineos_console.js -s[servername] stop

tyjtyj commented 1 year ago

Managed to get the code work for mineOS. Please pay attention to config file not to freeze process

freeze_process = false

File start_server

#!/bin/bash

SERVER=[YourServerName]

term() { 
  echo "Stopping ${SERVER} ${PID}" 
  /usr/games/minecraft/mineos_console.js -s $SERVER stop > /dev/null 2>&1
}

trap term TERM INT

# Start server
/usr/games/minecraft/mineos_console.js -s $SERVER start  > /dev/null 2>&1

sleep 5
# Remember server process ID, wait for it to quit, then reset the trap
SERVER_PID=$(/usr/games/minecraft/mineos_console.js -s $SERVER java_pid | grep -v pid)
echo "Detected Server PID ${SERVER_PID}"

while [ -e /proc/${SERVER_PID} ]; do sleep 1; done
#trap - TERM INT
while [ -e /proc/${SERVER_PID} ]; do sleep 1; done