Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # /etc/init.d/minecraft
- ### BEGIN INIT INFO
- # Provides: minecraft
- # Required-Start: $local_fs $remote_fs
- # Required-Stop: $local_fs $remote_fs
- # Should-Start: $network
- # Should-Stop: $network
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Minecraft server
- # Description: Init script for minecraft server. In development.
- ### END INIT INFO
- MINECRAFT_DIR="/srv/minecraft-server"
- START_COMMAND="java -Xincgc -Xmx8G -XX:MaxPermSize=128M -jar Spigot.jar"
- SCREEN_NAME="minecraft-server"
- attach() {
- screen -Rx $SCREEN_NAME
- }
- start() {
- echo "Starting minecraft server..."
- if cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND; then
- echo "Minecraft server started. Use 'sudo service minecraft attach'."
- fi
- }
- stop() {
- if send "stop"; then
- echo "Minecraft server is stopping..."
- fi
- }
- restart() {
- echo "Feature is not yet implemented."
- # echo "Restarting minecraft server..."
- # stop
- # start
- }
- status() {
- screen_info=$(screen -list | grep $SCREEN_NAME)
- if [ ! -z "$screen_info" ]; then
- echo "Minecraft server is running. Screen session is:"
- echo $screen_info
- else
- echo "Minecraft server is stopped."
- fi
- }
- send() {
- screen -p 0 -S minecraft -X stuff "$1$(printf \\r)"
- }
- update() {
- echo "Feature is not yet implemented."
- }
- log() {
- less -r "$MINECRAFT_DIR/logs/latest.log"
- }
- case "$1" in
- attach)
- attach
- ;;
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- restart
- ;;
- status)
- status
- ;;
- update)
- update
- ;;
- send)
- if !([ -z $2 ]); then
- echo "Sending '$2' to the server."
- send $2
- else
- echo "Specify a command to send to the server."
- fi
- ;;
- log)
- log
- ;;
- *)
- # echo "Usage: {attach|start|stop|restart|status|log|update <version>|send <command>}"
- echo "Usage: {attach|start|stop|status|log|send <command>}"
- exit 1
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement