[노트] Ubuntu mc 서버 구성

3906 단어
계정 만들기,alias 설정
apt-get install tmux
useradd -m mcadmin
echo "alias mcadmin='sudo -i -u mcadmin /bin/bash'" >> /etc/profile.d/00-aliases.sh

일반 사용자 만들기, mcadmin에 sudo 권한 증가
useradd -m newuser
echo "newuser ALL = (mcadmin) NOPASSWD:/bin/bash" >> /etc/sudoers.d/nopass

자바 설치(1.6.4 forge는 자바 8 u10 이후 버전을 지원하지 않음)
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

시작 순서 mcadmin tmux new -s mcxxx start.sh Ctrl-b d
tmux list-sessions tmux attach -t mc 다시 연결xxx
init.d 자체 시작 스크립트(/etc/init.d/디렉토리)
#!/bin/bash
# Author: Dreamagon
### BEGIN INIT INFO
# Provides:   mc-mymc
# Required-Start: $local_fs $remote_fs screen-cleanup
# 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:    Starts the minecraft server
### END INIT INFO

#Settings
SERVICE='MyMinecraft'
TMUXNAME="mc-$SERVICE-TMUX"
MCPATH="/home/mcadmin/${SERVICE}/current"
USERNAME='mcadmin'

ME=`whoami`
as_user() {
  if [ "$ME" = "$USERNAME" ] ; then
    bash -c "$1"
  else
    su - "$USERNAME" -c "$1"
  fi
}

mc_start() {
  if as_user "tmux list-sessions | grep $TMUXNAME > /dev/null"
  then
    echo "$SERVICE is already running!"
  else
    echo "Starting $SERVICE..."
    as_user "cd ${MCPATH} && tmux new-session -d -s ${TMUXNAME} ./LaunchServer.sh"
    sleep 7
    if as_user "tmux list-sessions | grep $TMUXNAME > /dev/null"
    then
      echo "$SERVICE is now running."
      as_user "touch ${MCPATH}/${TMUXNAME}"
    else
      echo "Error! Could not start $SERVICE!"
    fi
  fi
}

mc_stop() {
  if as_user "tmux list-sessions | grep $TMUXNAME > /dev/null"
  then
    echo "Stopping $SERVICE"
    as_user "tmux send-keys -t ${TMUXNAME} -l \"say SHUTTING DOWN IN 10 SECONDS. \""
    as_user "tmux send-keys -t ${TMUXNAME} Enter"
    sleep 10
    as_user "tmux send-keys -t ${TMUXNAME} -l \"stop\""
    as_user "tmux send-keys -t ${TMUXNAME} Enter"
    sleep 10
    as_user "rm ${MCPATH}/${TMUXNAME}"
  else
    echo "$SERVICE was not running."
  fi
  if as_user "tmux list-sessions | grep $TMUXNAME > /dev/null"
  then
    echo "Error! $SERVICE could not be stopped. Force Shutdown"
    as_user "tmux kill-session -t ${TMUXNAME}"
  else
    echo "$SERVICE is stopped."
  fi
}

#Start-Stop here
case "$1" in
  start)
    mc_start
    ;;
  stop)
    mc_stop
    ;;
  restart)
    mc_stop
    mc_start
    ;;
  startifdead)
    if ! as_user "tmux list-sessions | grep $TMUXNAME > /dev/null"
    then
      if [ -e "${MCPATH}/${TMUXNAME}" ]
      then
        echo "Server dead, relaunching"
        mc_start
      fi
    fi
    ;;
  status)
    if as_user "tmux list-sessions | grep $TMUXNAME > /dev/null"
    then
      echo "$SERVICE is running."
    else
      if [ -e "${MCPATH}/${TMUXNAME}" ]
      then
        echo "$SERVICE is dead"
      else
        echo "$SERVICE is not running."
      fi
    fi
    ;;

  *)
  echo "Usage: $0 {start|stop|status|startifdead}"
  exit 1
  ;;
esac

exit 0

rc. 활성화d
sudo update-rc.d mc-tnfc defaults
sudo update-rc.d mc-tnfc enable

crontab 자동 재부팅
cat mcinstances | xargs -n 1 -i /bin/sh /etc/init.d/{} startifdead
cat mcinstances | xargs -n 1 -i /bin/sh /etc/init.d/{} restart

좋은 웹페이지 즐겨찾기