blob: ea7755387d51c40cbba10f0e0df94e6001a98298 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#!/bin/bash
USER=$(whoami)
console_name="OpenSim_console"
screen_session=opensim/${console_name}
screen_check="screen -ls opensim/"
osversion="current"
bindir=/opt/opensim/${osversion}/bin
quiet=""
if [ "$1" = "-q" ]
then
quiet="true"
shift 1
fi
if [ "x$1" = "x" ]; then
pathname=$(pwd)
tgt=$(basename $pathname)
elif [ -d "./$1" ]; then
tgt=$1
elif [ -d "./sim$1" ]; then
tgt=sim$1
fi
if [ "x$tgt" = "x" ]; then
echo "usage:"
echo " $ $(basename $0) <sim>"
echo "where <sim> is one of: " robust sim[0-9][0-9]
exit 1
fi
if [ $USER = "opensim" ]
then
SUDO=""
else
SUDO="sudo -Hu opensim"
fi
# Would be nice if this worked.
export MONO_PATH=${bindir}
# Then we would not have to do this, and subsequently write all over the damn bin directory.
cd ${bindir}
if ($screen_check | grep -q ${console_name}); then
true
else
$SUDO screen -d -m -S ${console_name}
fi
if [ "x$tgt" = "xrobust" ]; then
exe="Robust"
else
exe="OpenSim"
fi
inidir=/opt/opensim/config/${tgt}
# Grab the first line of the sim.ini file, it should be the sim name in square brackets.
title=$(head -n 1 ${inidir}/Regions/sim.ini )
# Strip off spaces at either end.
shopt -s extglob
title=${title##*( )}
title=${title%%*( )}
shopt -u extglob
# Strip off the square brackets at either end.
title=${title:1:$(( ${#title} - 2 ))}
case $(basename $0) in
"start-sim")
cmd="/usr/bin/mono ${bindir}/${exe}.exe -inidirectory=${inidir} -logconfig=${inidir}/${exe}.exe.config"
# Check if it's already running.
if [ ! -e /var/run/opensim/${tgt}.pid ]
then
$SUDO screen -r ${screen_session} -p "-" -X screen -t "[${title}]" ${cmd}
fi
;&
"sim-console")
if [ "x$quiet" = "x" ]
then
screen -r ${screen_session} -p "[${title}]" -A
fi
;;
"backup-sim")
# Substitute underscores for spaces in the title, then add the full date and time to create the OAR file name.
cmd="save oar ${inidir}/../../backups/${title// /_}-$(date '+%F_%T').oar"
sudo -Hu opensim screen -r opensim/OpenSim_console -p "[${title}]" -X stuff "${cmd}$(/bin/echo -ne '\015')"
;;
"stop-sim")
sudo -Hu opensim screen -r opensim/OpenSim_console -p "[${title}]" -X stuff "shutdown$(/bin/echo -ne '\015')"
;;
esac
|