Advertisement
Guest User

Untitled

a guest
Feb 29th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. #!/bin/bash
  2. ### BEGIN INIT INFO
  3. # Provides: sminecraft-server4
  4. # Required-Start: $remote_fs $syslog
  5. # Required-Stop: $remote_fs $syslog
  6. # Default-Start: 2 3 4 5
  7. # Default-Stop: 0 1 6
  8. # Short-Description: Start daemon at boot time
  9. # Description: Enable service provided by daemon.
  10. ### END INIT INFO
  11. # /home/minecraft
  12. # version 0.3.2 2011-01-27 (YYYY-MM-DD)
  13. # version editer by pazpop - v2
  14.  
  15.  
  16. #Settings
  17. SERVICE='spigot.jar'
  18. USERNAME="minecraft"
  19. MCPATH='/home/pvpfac'
  20. ## INVOCATION='java -Xms8G -Xmx8G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=7 -XX:+AggressiveOpts -jar craftbukkit.jar nogui'
  21. INVOCATION='java -Xms9G -Xmx9G -jar spigot.jar nogui'
  22. BACKUPPATH='/home/backup/pvpfac'
  23.  
  24. ME=`whoami`
  25. as_user() {
  26. if [ "$ME" == "$USERNAME" ] ; then
  27. bash -c "$1"
  28. else
  29. su - $USERNAME -c "$1"
  30. fi
  31. }
  32.  
  33. mc_start() {
  34. if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  35. then
  36. echo "Tried to start but $SERVICE was already running!"
  37. else
  38. echo "$SERVICE was not running... starting."
  39. cd $MCPATH
  40. as_user "cd $MCPATH && screen -dmSL minecraft $INVOCATION"
  41. sleep 7
  42. if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  43. then
  44. echo "$SERVICE is now running."
  45. else
  46. echo "Could not start $SERVICE."
  47. fi
  48. fi
  49. }
  50.  
  51. mc_saveoff() {
  52. if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  53. then
  54. echo "$SERVICE is running... suspending saves"
  55. as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Sauvegarde en cours...\"\015'"
  56. as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-off\"\015'"
  57. as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
  58. sync
  59. sleep 10
  60. else
  61. echo "$SERVICE was not running. Not suspending saves."
  62. fi
  63. }
  64.  
  65. mc_saveon() {
  66. if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  67. then
  68. echo "$SERVICE is running... re-enabling saves"
  69. as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-on\"\015'"
  70. as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Sauvegarde terminée!\"\015'"
  71. else
  72. echo "$SERVICE was not running. Not resuming saves."
  73. fi
  74. }
  75.  
  76. mc_stop() {
  77. if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  78. then
  79. echo "$SERVICE is running... stopping."
  80. as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Arrêt du serveur dans 10 secondes!\"\015'"
  81. as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
  82. sleep 10
  83. as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
  84. sleep 7
  85. else
  86. echo "$SERVICE was not running."
  87. fi
  88. if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  89. then
  90. echo "$SERVICE could not be shut down... still running."
  91. else
  92. echo "$SERVICE is shut down."
  93. fi
  94. }
  95.  
  96.  
  97. mc_backup() {
  98. echo "Sauvegarde du world en cours..."
  99. if [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"` ]
  100. then
  101. 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
  102. do
  103. if [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"`-$i ]
  104. then
  105. continue
  106. else
  107. as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%m.%d.%Y"`-$i"
  108. break
  109. fi
  110. done
  111. else
  112. as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%m.%d.%Y"`"
  113. echo "... sauvegarde du world OK"
  114. fi
  115. echo "Sauvegarde du repertoire des plugins serveur..."
  116. if [ -d $BACKUPPATH/plugins_`date "+%m.%d.%Y"` ]
  117. then
  118. 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
  119. do
  120. if [ -d $BACKUPPATH/plugins_`date "+%m.%d.%Y".tar`-$i ]
  121. then
  122. continue
  123. else
  124. as_user "cd $MCPATH && cp -r plugins $BACKUPPATH/plugins_`date "+%m.%d.%Y"`-$i"
  125. # as_user "tar -cf $BACKUPPATH/plugins_`date "+%m.%d.%Y"`.tar-$i --exclude 'dynmap/*' $MCPATH/plugins/"
  126. break
  127. fi
  128. done
  129. else
  130. as_user "cd $MCPATH && cp -r plugins $BACKUPPATH/plugins_`date "+%m.%d.%Y"`"
  131. echo "... sauvegarde des plugins OK"
  132. fi
  133. echo "Backup complete"
  134. echo "`date`"
  135. }
  136.  
  137.  
  138. #Start-Stop here
  139. case "$1" in
  140. start)
  141. mc_start
  142. ;;
  143. stop)
  144. mc_stop
  145. ;;
  146. restart)
  147. mc_stop
  148. mc_start
  149. ;;
  150. backup)
  151. mc_saveoff
  152. mc_backup
  153. mc_saveon
  154. ;;
  155. status)
  156. if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  157. then
  158. echo "$SERVICE is running."
  159. else
  160. echo "$SERVICE is not running."
  161. fi
  162. ;;
  163.  
  164. *)
  165. echo "Usage: /etc/init.d/minecraft {start|stop|backup|status|restart}"
  166. exit 1
  167. ;;
  168. esac
  169.  
  170. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement