Advertisement
Guest User

Untitled

a guest
Jul 21st, 2015
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.10 KB | None | 0 0
  1. #!/bin/bash
  2. # /etc/init.d/minecraft
  3.  
  4. ### BEGIN INIT INFO
  5. # Provides:   minecraft
  6. # Required-Start: $local_fs $remote_fs
  7. # Required-Stop:  $local_fs $remote_fs
  8. # Should-Start:   $network
  9. # Should-Stop:    $network
  10. # Default-Start:  2 3 4 5
  11. # Default-Stop:   0 1 6
  12. # Short-Description:    Minecraft server
  13. # Description:    Init script for minecraft server. In development.
  14. ### END INIT INFO
  15.  
  16. MINECRAFT_DIR="/srv/minecraft-server"
  17.  
  18. START_COMMAND="java -Xincgc -Xmx8G -XX:MaxPermSize=128M -jar Spigot.jar"
  19.  
  20. SCREEN_NAME="minecraft-server"
  21.  
  22. attach() {
  23.     screen -Rx $SCREEN_NAME
  24. }
  25.  
  26. start() {
  27.     echo "Starting minecraft server..."
  28.     if cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND; then
  29.         echo "Minecraft server started. Use 'sudo service minecraft attach'."
  30.     fi
  31. }
  32.  
  33. stop() {
  34.     if send "stop"; then
  35.         echo "Minecraft server is stopping..."
  36.     fi
  37. }
  38.  
  39. restart() {
  40.     echo "Feature is not yet implemented."
  41.     # echo "Restarting minecraft server..."
  42.     # stop
  43.     # start
  44. }
  45.  
  46. status() {
  47.     screen_info=$(screen -list | grep $SCREEN_NAME)
  48.     if [ ! -z "$screen_info" ]; then
  49.         echo "Minecraft server is running. Screen session is:"
  50.         echo $screen_info
  51.     else
  52.         echo "Minecraft server is stopped."
  53.     fi
  54. }
  55.  
  56. send() {
  57.     screen -p 0 -S minecraft -X stuff "$1$(printf \\r)"
  58. }
  59.  
  60. update() {
  61.     echo "Feature is not yet implemented."
  62. }
  63.  
  64. log() {
  65.     less -r "$MINECRAFT_DIR/logs/latest.log"
  66. }
  67.  
  68. case "$1" in
  69.     attach)
  70.         attach
  71.         ;;
  72.     start)
  73.         start
  74.         ;;
  75.     stop)  
  76.         stop
  77.         ;;
  78.     restart)
  79.         restart
  80.         ;;
  81.     status)
  82.         status
  83.         ;;
  84.     update)
  85.         update
  86.         ;;
  87.     send)
  88.         if !([ -z $2 ]); then
  89.             echo "Sending '$2' to the server."
  90.             send $2
  91.         else
  92.             echo "Specify a command to send to the server."
  93.         fi
  94.         ;;
  95.     log)
  96.         log
  97.         ;;
  98.     *)      
  99.         # echo "Usage: {attach|start|stop|restart|status|log|update <version>|send <command>}"
  100.         echo "Usage: {attach|start|stop|status|log|send <command>}"
  101.         exit 1
  102.         ;;
  103. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement