89 lines
2 KiB
Bash
89 lines
2 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
CMD=$1
|
||
|
#DOMAIN=$(pwd|sed s%/home/nevrax/%%)
|
||
|
DOMAIN=shard
|
||
|
|
||
|
if [ "$CMD" == "" ]
|
||
|
then
|
||
|
echo
|
||
|
echo Screen sessions currently running:
|
||
|
screen -list
|
||
|
echo
|
||
|
echo "Commands:"
|
||
|
echo " 'start' to start the shard"
|
||
|
echo " 'stop' to stop the ${DOMAIN}"
|
||
|
echo " 'join' to join the ${DOMAIN}'s screen session"
|
||
|
echo " 'share' to join the screen session in shared mode"
|
||
|
echo " 'state' to view state information for the ${DOMAIN}"
|
||
|
echo
|
||
|
printf "Enter a command: "
|
||
|
read CMD
|
||
|
fi
|
||
|
|
||
|
if [ "$CMD" == "stop" ]
|
||
|
then
|
||
|
if [ $(screen -list | grep \\\.${DOMAIN} | wc -l) != 1 ]
|
||
|
then
|
||
|
echo Cannot stop domain \'${DOMAIN}\' because no screen by that name appears to be running
|
||
|
screen -list
|
||
|
else
|
||
|
screen -d -r $(screen -list | grep \\\.${DOMAIN}| sed 's/(.*)//') -X quit> /dev/null
|
||
|
rm -v */*.state
|
||
|
rm -v */*launch_ctrl ./global.launch_ctrl
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
STARTARGS=
|
||
|
if [ "$CMD" == "batchstart" ]
|
||
|
then
|
||
|
STARTARGS='-d -m'
|
||
|
CMD='start'
|
||
|
fi
|
||
|
|
||
|
if [ "$CMD" == "start" ]
|
||
|
then
|
||
|
ulimit -c unlimited
|
||
|
screen -wipe > /dev/null
|
||
|
if [ $( screen -list | grep \\\.${DOMAIN} | wc -w ) != 0 ]
|
||
|
then
|
||
|
echo Cannot start domain \'${DOMAIN}\' because this domain is already started
|
||
|
screen -list | grep $DOMAIN
|
||
|
else
|
||
|
screen $STARTARGS -S ${DOMAIN} -c ${DOMAIN}.screen.rc
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ "$CMD" == "join" ]
|
||
|
then
|
||
|
if [ $(screen -list | grep \\\.${DOMAIN} | wc -l) != 1 ]
|
||
|
then
|
||
|
echo Cannot join domain \'${DOMAIN}\' because no screen by that name appears to be running
|
||
|
screen -list
|
||
|
else
|
||
|
screen -r $(screen -list | grep \\\.${DOMAIN}| sed 's/(.*)//')
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ "$CMD" == "share" ]
|
||
|
then
|
||
|
if [ $(screen -list | grep \\\.${DOMAIN} | wc -l) != 1 ]
|
||
|
then
|
||
|
echo Cannot join domain \'${DOMAIN}\' because no screen by that name appears to be running
|
||
|
screen -list
|
||
|
else
|
||
|
screen -r -x $(screen -list | grep \\\.${DOMAIN}| sed 's/(.*)//')
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ "$CMD" == "state" ]
|
||
|
then
|
||
|
echo State of domain ${DOMAIN}:
|
||
|
if [ $(echo */*.state) == "*/*.state" ]
|
||
|
then
|
||
|
echo - No state files found
|
||
|
else
|
||
|
grep RUNNING *state
|
||
|
fi
|
||
|
fi
|