Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #
- # $FreeBSD: head/games/minecraft-server/files/minecraft.in 476166 2018-08-01 08:30:38Z 0mp $
- # PROVIDE: minecraft
- # REQUIRE: LOGIN
- # KEYWORD: shutdown
- #
- # rc.conf variables:
- # minecraft_enable (Default: NO)
- # minecraft_mems (Default: 1024M)
- # minecraft_memx (Default: 1024M)
- # minecraft_args (Default: "")
- . /etc/rc.subr
- name=minecraft
- rcvar=minecraft_enable
- desc="Dedicated server for the game Minecraft"
- load_rc_config $name
- minecraft_mems=${minecraft_mems:-"1024M"}
- minecraft_memx=${minecraft_memx:-"1024M"}
- minecraft_args=${minecraft_args:-""}
- extra_commands="console status kill"
- start_cmd="${name}_start"
- stop_cmd="${name}_stop"
- console_cmd="${name}_console"
- status_cmd="${name}_status"
- kill_cmd="${name}_kill"
- is_running()
- {
- pgrep -qu mcserver java
- return $?
- }
- minecraft_start()
- {
- if is_running; then
- echo "${name} is already running."
- elif [ ${minecraft_mems%?} -gt ${minecraft_memx%?} ]; then
- echo "ERROR: minecraft_mems is set greater than minecraft_memx."
- echo "ERROR: Set minecraft_memx to be equal or greater than minecraft_mems in rc.conf."
- else
- if [ -n "${minecraft_mem}" ]; then
- echo "WARNING: minecraft_mem is deprecated. Please change this to minecraft_memx."
- minecraft_memx=${minecraft_mem}
- fi
- echo "Starting ${name}."
- cd /usr/local/minecraft-server
- su mcserver -c "/usr/local/bin/tmux new-session -s minecraft -d '/usr/local/bin/java -Xmx${minecraft_memx} -Xms${minecraft_mems} ${minecraft_args} -jar /usr/local/minecraft-server/server.jar nogui'"
- fi
- }
- minecraft_stop()
- {
- if is_running; then
- echo "Stopping ${name}."
- su mcserver -c "/usr/local/bin/tmux send-keys -t ${name} \"stop\" ENTER"
- i=0
- while [ $i -lt 10 ]; do
- i=$(($i + 1))
- if is_running; then
- sleep 1
- else
- echo "${name} has been stopped."
- return
- fi
- done
- echo "WARN: ${name} could not be stopped or is taking longer than expected."
- echo "WARN: To view the console, type 'service ${name} console'"
- echo "WARN: To kill ${name}, type 'service ${name} kill'"
- else
- echo "${name} is not running."
- fi
- }
- minecraft_console()
- {
- if ! is_running; then
- echo "${name} is not running."
- else
- export TERM=xterm
- su mcserver -c "/usr/local/bin/tmux attach-session -t ${name}"
- fi
- }
- minecraft_status()
- {
- if is_running; then
- echo "${name} is running."
- else
- echo "${name} is not running."
- fi
- }
- minecraft_kill()
- {
- if ! is_running; then
- echo "${name} is not running."
- else
- pkill -KILL -u mcserver java
- echo "${name} has been killed."
- fi
- }
- run_rc_command "$1"
Advertisement
Add Comment
Please, Sign In to add comment