commit | d9978851dd0d70d1cb239b155c5d44f0e2f4586f | [log] [download] |
---|---|---|
author | WHR <msl0000023508@gmail.com> | Fri Aug 03 21:50:50 2018 +0800 |
committer | WHR <msl0000023508@gmail.com> | Fri Aug 03 21:50:50 2018 +0800 |
tree | c1e80ddc8172f166e35d8be74ca35a7c6b49e78d | |
parent | 387acf459c82bc0706d84788a54b8e4a713a5672 [diff] |
Fix init.d/minecraft always exit with status 0 on start service; Add SMF support
Configuration file /etc/default/minecraft
|Variable |Description |Default value | |-------------------------------|-------------------------------------------------------|-----------------------| |MINECRAFT_USER_NAME |The user name to run Minecraft server |minecraft | |MINECRAFT_HOME |Home directory of Minecraft server instances |/home/minecraft | |MINECRAFT_START_COMMAND |Server startup command |exec sh start.sh | |MINECRAFT_USE_TMUX |Enable to uses of tmux(1) |NO | |MINECRAFT_SESSION_NAME |Base session name of tmux(1) sessions |minecraft | |MINECRAFT_ALTERNATIVE_LOG_FILE |Redirect outputs to this file if tmux(1) is not used |/dev/null | |MINECRAFT_SERVERS |Space separated server instances | |
Server instances are directories under MINECRAFT_HOME; each server instance will be started under its instance directory by running MINECRAFT_START_COMMAND. Enabling tmux(1) is recommended if using Bukkit server framework, as this server didn't save worlds when exiting on signals. Session name of each server instance will be ‘MINECRAFT_SESSION_NAME-INSTANCE_NAME’.
/etc/default/minecraft
example:
MINECRAFT_HOME=/export/home/minecraft MINECRAFT_SERVERS="1.7-server 1.8-server" MINECRAFT_USE_TMUX=YES
The user (minecraft
by default) must have a sh(1)
compatible shell in order to run shell commands with the default shell.
The startup script (start.sh
by default) must write the PID of server program to server.pid
, and must not fork the server program into background.
start.sh
example:
#!/bin/sh JAVA_HOME=/opt/jdk1.7.0_80 echo $$ > server.pid exec "$JAVA_HOME/bin/java" -jar /opt/minecraft/minecraft-server-1.7.10.jar --nogui
This is very similar with init.d/minecraft
, except the configuration variables are in lower case and set from rc.conf
instead of /etc/default/minecraft
Example configuration in rc.conf
:
minecraft_enable="YES" minecraft_home="/usr/home/minecraft" minecraft_use_tmux="YES" minecraft_servers="1.7-server 1.8-server"
The user and startup script requirements are same with init.d/minecraft
.
minecraft_use_tmux="YES"
Example configuration:
# svccfg -s site/minecraft setprop config/home = astring: /export/home/minecraft # svccfg -s site/minecraft setprop config/use_tmux = boolean: true # svccfg -s site/minecraft setprop config/servers = astring: '("rivoreo" "2.0blue-server")' # svcadm enable site/minecraft