Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- usage()
- {
- cat << EOF
- usage $0 options
- This script launches, installs, closes, or connects to the console managing, a server.
- OPTIONS:
- -h Show this message
- -i Install
- -s Start
- -x Close
- -c Console
- -p Port
- -w World
- -u User
- -n Name
- EOF
- }
- WORLD='world1'
- MODE='help'
- USER='tshock'
- PORT='7777'
- TMUX_CONSOLE='tshock-console'
- while getopts "hisxcp:w:u:n:" OPTION
- do
- case $OPTION in
- p)
- PORT=$OPTARG
- ;;
- u)
- USER=$OPTARG
- ;;
- w)
- WORLD=$OPTARG
- ;;
- n)
- TMUX_CONSOLE=$OPTARG
- ;;
- h)
- usage
- exit 1
- ;;
- i)
- MODE='install'
- ;;
- c)
- MODE='console'
- ;;
- s)
- MODE='start'
- ;;
- x)
- MODE='close'
- ;;
- h)
- MODE='help'
- ;;
- esac
- done
- case $MODE in
- start)
- if [ -n "$(sudo -u ${USER} tmux has-session -t $TMUX_CONSOLE)" ]; then
- sudo -u ${USER} tmux new-session -d -s ${TMUX_CONSOLE} -d "cd /srv/tshock/; mono TerrariaServer.exe -port ${PORT} -world /srv/tshock/Terraria/Worlds/${WORLD}.wld"
- if [ $? -gt 0 ]; then
- exit 1
- fi
- else
- echo "Tshock (${WORLD}.wld/${TMUX_CONSOLE}) already started"
- exit 1
- fi
- exit
- ;;
- close)
- sudo -u ${USER} tmux send-keys -t ${TMUX_CONSOLE} 'broadcast NOTICE: Server shutting down in 5 seconds!' C-m
- sleep 5
- sudo -u ${USER} tmux send-keys -t ${TMUX_CONSOLE} 'exit' C-m
- sleep 10
- exit
- ;;
- install)
- sudo -u ${USER} bash -c 'cd /srv/tshock/; mono TerrariaServer.exe'
- exit
- ;;
- console)
- sudo -u ${USER} tmux attach -t ${TMUX_CONSOLE}
- exit
- ;;
- help)
- usage
- exit 1
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement