Date: Sun, 1 Mar 2015 22:21:10 +0000 (UTC) From: John Marino <marino@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r380231 - in head/games/minecraft-server: . files Message-ID: <201503012221.t21MLA49011622@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marino Date: Sun Mar 1 22:21:09 2015 New Revision: 380231 URL: https://svnweb.freebsd.org/changeset/ports/380231 QAT: https://qat.redports.org/buildarchive/r380231/ Log: games/minecraft-server: Add support for running as a service PR: 197387 Submitted by: maintainer (Jonathan Price) Added: head/games/minecraft-server/files/minecraft.in (contents, props changed) Modified: head/games/minecraft-server/Makefile head/games/minecraft-server/files/pkg-message.in Modified: head/games/minecraft-server/Makefile ============================================================================== --- head/games/minecraft-server/Makefile Sun Mar 1 22:15:21 2015 (r380230) +++ head/games/minecraft-server/Makefile Sun Mar 1 22:21:09 2015 (r380231) @@ -2,6 +2,7 @@ PORTNAME= minecraft-server PORTVERSION= 1.8.1 +PORTREVISION= 1 CATEGORIES= games java MASTER_SITES= https://s3.amazonaws.com/Minecraft.Download/versions/${PORTVERSION}/ DISTNAME= minecraft_server.${PORTVERSION}.jar @@ -11,6 +12,10 @@ EXTRACT_ONLY= MAINTAINER= freebsd@jonathanprice.org COMMENT= Dedicated server for the game Minecraft +OPTIONS_DEFINE= DAEMON +DAEMON_DESC= Allows controlling via rc.d +OPTIONS_SUB= yes + USERS= mcserver GROUPS= ${USERS} @@ -27,6 +32,13 @@ CONFIG_FILES= banned-ips.json \ usercache.json \ whitelist.json +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MDAEMON} +USE_RC_SUBR+= minecraft +RUN_DEPENDS+= tmux:${PORTSDIR}/sysutils/tmux +.endif + do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME} ${INSTALL_DATA} ${DISTDIR}/${DISTNAME} ${STAGEDIR}${PREFIX}/${PORTNAME} Added: head/games/minecraft-server/files/minecraft.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/minecraft-server/files/minecraft.in Sun Mar 1 22:21:09 2015 (r380231) @@ -0,0 +1,91 @@ +#!/bin/sh +# +# $FreeBSD$ +# PROVIDE: minecraft +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# rc.conf variables: +# minecraft_enable (Default: NO) +# minecraft_mem (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_mem=${minecraft_mem:-"1024M"} +minecraft_args=${minecraft_args:-""} + +extra_commands="console status" +start_cmd="${name}_start" +stop_cmd="${name}_stop" +console_cmd="${name}_console" +status_cmd="${name}_status" + +minecraft_start() +{ + pgrep -qu mcserver java + isrunning=$? + if [ ${isrunning} -eq 0 ]; then + echo "${name} already running." + else + echo "Starting ${name}." + cd %%PREFIX%%/minecraft-server + su mcserver -c "%%LOCALBASE%%/bin/tmux new-session -s minecraft -d '%%LOCALBASE%%/bin/java -Xmx${minecraft_mem} -Xms${minecraft_mem} ${minecraft_args} -jar %%PREFIX%%/minecraft-server/minecraft_server.1.8.1.jar nogui'" + fi +} + +minecraft_stop() +{ + pgrep -qu mcserver java + isrunning=$? + if [ ${isrunning} -eq 0 ]; then + echo "Stopping ${name}." + su mcserver -c "%%LOCALBASE%%/bin/tmux send-keys -t ${name} \"stop\" ENTER" + + i=0 + while [ $i -lt 10 ]; do + i=$(($i + 1)) + pgrep -qu mcserver java + stillrunning=$? + if [ ${stillrunning} -eq 0 ]; then + sleep 1 + else + echo "${name} stopped." + return + fi + done + echo "ERROR: ${name} could not be stopped." + else + echo "${name} not running." + fi +} + +minecraft_console() +{ + pgrep -qu mcserver java + isrunning=$? + if [ ${isrunning} -ne 0 ]; then + echo "${name} not running." + else + export TERM=xterm + su mcserver -c "%%LOCALBASE%%/bin/tmux attach-session -t ${name}" + fi +} + +minecraft_status() +{ + pgrep -qu mcserver java + isrunning=$? + if [ ${isrunning} -eq 0 ]; then + echo "${name} is running." + else + echo "${name} is not running." + fi +} + +run_rc_command "$1" Modified: head/games/minecraft-server/files/pkg-message.in ============================================================================== --- head/games/minecraft-server/files/pkg-message.in Sun Mar 1 22:15:21 2015 (r380230) +++ head/games/minecraft-server/files/pkg-message.in Sun Mar 1 22:21:09 2015 (r380231) @@ -1,16 +1,22 @@ When you first run minecraft-server, it will populate the file %%ETCDIR%%/eula.txt -It is required to read the EULA, and then set: -eula=true +It is required to read the EULA, and then set eula=true -- To run the server, run %%PREFIX%%/bin/minecraft-server - Configuration files can be found at %%ETCDIR%% - Log and debug output files can be found at /var/log/minecraft-server/ - World files can be found at /var/db/minecraft-server + +Without daemon option: +- To run the server, run %%PREFIX%%/bin/minecraft-server - To edit java's parameters, edit %%ETCDIR%%/java-args.txt -NOTE: +With daemon option: +- The service has been installed with the name 'minecraft' +- To adjust memory usage, use MINECRAFT_MEM= in /etc/rc.conf +- To add other java parameters, use MINECRAFT_ARGS= in /etc/rc.conf +- To see the interactive console, type service minecraft console + Users upgrading from version < 1.8 are advised to run the server to generate new config files, and then modify them based on their existing configuration, as most files are now JSON instead of txt.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503012221.t21MLA49011622>