Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ### BEGIN INIT INFO
- # Provides: sminecraft-server4
- # Required-Start: $remote_fs $syslog
- # Required-Stop: $remote_fs $syslog
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start daemon at boot time
- # Description: Enable service provided by daemon.
- ### END INIT INFO
- # /home/minecraft
- # version 0.3.2 2011-01-27 (YYYY-MM-DD)
- # version editer by pazpop - v2
- #Settings
- SERVICE='spigot.jar'
- USERNAME="minecraft"
- MCPATH='/home/pvpfac'
- ## INVOCATION='java -Xms8G -Xmx8G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=7 -XX:+AggressiveOpts -jar craftbukkit.jar nogui'
- INVOCATION='java -Xms9G -Xmx9G -jar spigot.jar nogui'
- BACKUPPATH='/home/backup/pvpfac'
- ME=`whoami`
- as_user() {
- if [ "$ME" == "$USERNAME" ] ; then
- bash -c "$1"
- else
- su - $USERNAME -c "$1"
- fi
- }
- mc_start() {
- if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
- then
- echo "Tried to start but $SERVICE was already running!"
- else
- echo "$SERVICE was not running... starting."
- cd $MCPATH
- as_user "cd $MCPATH && screen -dmSL minecraft $INVOCATION"
- sleep 7
- if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
- then
- echo "$SERVICE is now running."
- else
- echo "Could not start $SERVICE."
- fi
- fi
- }
- mc_saveoff() {
- if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
- then
- echo "$SERVICE is running... suspending saves"
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Sauvegarde en cours...\"\015'"
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-off\"\015'"
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
- sync
- sleep 10
- else
- echo "$SERVICE was not running. Not suspending saves."
- fi
- }
- mc_saveon() {
- if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
- then
- echo "$SERVICE is running... re-enabling saves"
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-on\"\015'"
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Sauvegarde terminée!\"\015'"
- else
- echo "$SERVICE was not running. Not resuming saves."
- fi
- }
- mc_stop() {
- if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
- then
- echo "$SERVICE is running... stopping."
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Arrêt du serveur dans 10 secondes!\"\015'"
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
- sleep 10
- as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
- sleep 7
- else
- echo "$SERVICE was not running."
- fi
- if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
- then
- echo "$SERVICE could not be shut down... still running."
- else
- echo "$SERVICE is shut down."
- fi
- }
- mc_backup() {
- echo "Sauvegarde du world en cours..."
- if [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"` ]
- then
- for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
- do
- if [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"`-$i ]
- then
- continue
- else
- as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%m.%d.%Y"`-$i"
- break
- fi
- done
- else
- as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%m.%d.%Y"`"
- echo "... sauvegarde du world OK"
- fi
- echo "Sauvegarde du repertoire des plugins serveur..."
- if [ -d $BACKUPPATH/plugins_`date "+%m.%d.%Y"` ]
- then
- for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
- do
- if [ -d $BACKUPPATH/plugins_`date "+%m.%d.%Y".tar`-$i ]
- then
- continue
- else
- as_user "cd $MCPATH && cp -r plugins $BACKUPPATH/plugins_`date "+%m.%d.%Y"`-$i"
- # as_user "tar -cf $BACKUPPATH/plugins_`date "+%m.%d.%Y"`.tar-$i --exclude 'dynmap/*' $MCPATH/plugins/"
- break
- fi
- done
- else
- as_user "cd $MCPATH && cp -r plugins $BACKUPPATH/plugins_`date "+%m.%d.%Y"`"
- echo "... sauvegarde des plugins OK"
- fi
- echo "Backup complete"
- echo "`date`"
- }
- #Start-Stop here
- case "$1" in
- start)
- mc_start
- ;;
- stop)
- mc_stop
- ;;
- restart)
- mc_stop
- mc_start
- ;;
- backup)
- mc_saveoff
- mc_backup
- mc_saveon
- ;;
- status)
- if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
- then
- echo "$SERVICE is running."
- else
- echo "$SERVICE is not running."
- fi
- ;;
- *)
- echo "Usage: /etc/init.d/minecraft {start|stop|backup|status|restart}"
- exit 1
- ;;
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement