diff options
| -rwxr-xr-x | install_opensim.sh | 22 | ||||
| -rw-r--r-- | opensim.screenrc | 20 | ||||
| -rwxr-xr-x | start-sim-in-rest | 73 |
3 files changed, 99 insertions, 16 deletions
diff --git a/install_opensim.sh b/install_opensim.sh index 0c8c659..14d7c42 100755 --- a/install_opensim.sh +++ b/install_opensim.sh | |||
| @@ -26,8 +26,10 @@ FLUSH PRIVILEGES; | |||
| 26 | zzzzEOFzzz | 26 | zzzzEOFzzz |
| 27 | 27 | ||
| 28 | echo "Setting up OpenSim" | 28 | echo "Setting up OpenSim" |
| 29 | sudo deluser opensim | 29 | sudo deluser opensim --remove-home |
| 30 | sudo adduser --system --shell /bin/false --group opensim | 30 | sudo adduser --system --shell /bin/false --group opensim |
| 31 | sudo cp opensim.screenrc /home/opensim/.screenrc | ||
| 32 | sudo chmod 744 /home/opensim/.screenrc | ||
| 31 | sudo mkdir -p /var/log/opensim | 33 | sudo mkdir -p /var/log/opensim |
| 32 | sudo chown opensim:opensim /var/log/opensim | 34 | sudo chown opensim:opensim /var/log/opensim |
| 33 | sudo chmod 777 /var/log/opensim | 35 | sudo chmod 777 /var/log/opensim |
| @@ -38,7 +40,10 @@ sudo mkdir -p /opt/opensim | |||
| 38 | sudo chown $USER:$USER /opt/opensim | 40 | sudo chown $USER:$USER /opt/opensim |
| 39 | 41 | ||
| 40 | cd /opt/opensim | 42 | cd /opt/opensim |
| 41 | wget https://github.com/downloads/infinitegrid/InfiniteGrid-Opensim/opensim-0.7.1.1-infinitegrid-03.tar.bz2 | 43 | if [ ! -e opensim-0.7.1.1-infinitegrid-03.tar.bz2 ] |
| 44 | then | ||
| 45 | wget https://github.com/downloads/infinitegrid/InfiniteGrid-Opensim/opensim-0.7.1.1-infinitegrid-03.tar.bz2 | ||
| 46 | fi | ||
| 42 | tar xjf opensim-0.7.1.1-infinitegrid-03.tar.bz2 | 47 | tar xjf opensim-0.7.1.1-infinitegrid-03.tar.bz2 |
| 43 | ln -s opensim-0.7.1.1-infinitegrid-03 current | 48 | ln -s opensim-0.7.1.1-infinitegrid-03 current |
| 44 | mkdir -p config | 49 | mkdir -p config |
| @@ -56,7 +61,6 @@ mv NSLModules.Messaging.MuteList.dll ../../modules/ | |||
| 56 | ln -s ../../modules/NSLModules.Messaging.MuteList.dll NSLModules.Messaging.MuteList.dll | 61 | ln -s ../../modules/NSLModules.Messaging.MuteList.dll NSLModules.Messaging.MuteList.dll |
| 57 | mv OpenSimProfile.Modules.dll ../../modules/ | 62 | mv OpenSimProfile.Modules.dll ../../modules/ |
| 58 | ln -s ../../modules/OpenSimProfile.Modules.dll OpenSimProfile.Modules.dll | 63 | ln -s ../../modules/OpenSimProfile.Modules.dll OpenSimProfile.Modules.dll |
| 59 | #sudo chown -R opensim:opensim ../../modules | ||
| 60 | ln -s ../../config config | 64 | ln -s ../../config config |
| 61 | 65 | ||
| 62 | cat > OpenSim.ConsoleClient.ini << zzzzEOFzzzz | 66 | cat > OpenSim.ConsoleClient.ini << zzzzEOFzzzz |
| @@ -86,5 +90,17 @@ sed -i 's@; StorageProvider = "OpenSim.Data.MySQL.dll"@StorageProvider = "OpenSi | |||
| 86 | sed -i "s@; ConnectionString = \"Data Source=localhost;Database=opensim;User ID=opensim;Password=\*\*\*\*;\"@ConnectionString = \"Data Source=localhost;Database=opensim;User ID=opensim;Password=$MYSQL_PASSWORD;\"@" GridCommon.ini | 90 | sed -i "s@; ConnectionString = \"Data Source=localhost;Database=opensim;User ID=opensim;Password=\*\*\*\*;\"@ConnectionString = \"Data Source=localhost;Database=opensim;User ID=opensim;Password=$MYSQL_PASSWORD;\"@" GridCommon.ini |
| 87 | 91 | ||
| 88 | cd ../../.. | 92 | cd ../../.. |
| 93 | |||
| 94 | # Setting screen to be suid. EWWWWWW!!! Security hole!! | ||
| 95 | #ImReallyParanoid="true" | ||
| 96 | if [ "x$ImReallyParanoid" = "x" ] | ||
| 97 | then | ||
| 98 | sudo chmod u+s /usr/bin/screen | ||
| 99 | sudo chmod g+s /usr/bin/screen | ||
| 100 | sudo chmod 755 /var/run/screen | ||
| 101 | sudo chown root:utmp /var/run/screen | ||
| 102 | fi | ||
| 103 | |||
| 89 | #sudo chown -R opensim:opensim opensim-0.7.1.1-infinitegrid-03 | 104 | #sudo chown -R opensim:opensim opensim-0.7.1.1-infinitegrid-03 |
| 105 | #sudo chown -R opensim:opensim modules | ||
| 90 | 106 | ||
diff --git a/opensim.screenrc b/opensim.screenrc new file mode 100644 index 0000000..01a4f26 --- /dev/null +++ b/opensim.screenrc | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | # C-a :source .screenrc | ||
| 2 | |||
| 3 | termcapinfo xterm* ti@:te@ | ||
| 4 | startup_message off | ||
| 5 | vbell off | ||
| 6 | autodetach on | ||
| 7 | altscreen on | ||
| 8 | shelltitle "$ |bash" | ||
| 9 | defscrollback 10000 | ||
| 10 | defutf8 on | ||
| 11 | nonblock on | ||
| 12 | |||
| 13 | hardstatus alwayslastline | ||
| 14 | hardstatus string '%{= kw}[ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw%?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %d/%m/%y %C %A %{w}]%{w}' | ||
| 15 | |||
| 16 | bind 'q' quit | ||
| 17 | |||
| 18 | multiuser on | ||
| 19 | acladd root | ||
| 20 | |||
diff --git a/start-sim-in-rest b/start-sim-in-rest index d6aac2c..4738c2e 100755 --- a/start-sim-in-rest +++ b/start-sim-in-rest | |||
| @@ -1,40 +1,87 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | osversion="current" | 3 | # Pick one of these depending on how you want your access. |
| 4 | NeedARest=" -console=rest" | 4 | # NOTE - REST does not work. B-( |
| 5 | #NeedARest=" -console=rest" | ||
| 5 | NeedARest="" | 6 | NeedARest="" |
| 7 | Screaming="true" | ||
| 8 | #Screaming="" | ||
| 9 | |||
| 10 | USER=$(whoami) | ||
| 11 | |||
| 12 | console_name=screen_console | ||
| 13 | if [ "$USER" = "opensim" ] | ||
| 14 | then | ||
| 15 | screen_session=opensim/${console_name} | ||
| 16 | screen_check="screen -ls opensim/" | ||
| 17 | else | ||
| 18 | screen_session=${console_name} | ||
| 19 | screen_check="screen -ls" | ||
| 20 | fi | ||
| 21 | osversion="current" | ||
| 6 | 22 | ||
| 7 | if [ x$1 = x ]; then | 23 | if [ "x$1" = "x" ]; then |
| 8 | pathname=$(pwd) | 24 | pathname=$(pwd) |
| 9 | tgt=$(basename $pathname) | 25 | tgt=$(basename $pathname) |
| 10 | elif [ -d ./$1 ]; then | 26 | elif [ -d "./$1" ]; then |
| 11 | tgt=$1 | 27 | tgt=$1 |
| 12 | elif [ -d ./sim$1 ]; then | 28 | elif [ -d "./sim$1" ]; then |
| 13 | tgt=sim$1 | 29 | tgt=sim$1 |
| 14 | fi | 30 | fi |
| 15 | 31 | ||
| 16 | if [ x$tgt = x ]; then | 32 | if [ "x$tgt" = "x" ]; then |
| 17 | echo "usage:" | 33 | echo "usage:" |
| 18 | echo " $ start-sim-in-rest <sim>" | 34 | echo " $ start-sim-in-rest <sim>" |
| 19 | echo "where <sim> is one of: " robust sim[0-9][0-9] | 35 | echo "where <sim> is one of: " robust sim[0-9][0-9] |
| 20 | exit 1 | 36 | exit 1 |
| 21 | fi | 37 | fi |
| 22 | 38 | ||
| 23 | inidir=/opt/opensim/config/${tgt} | 39 | if [ "x$Screaming" = "xtrue" ] |
| 24 | bindir=/opt/opensim/${osversion}/bin | 40 | then |
| 25 | if [ x$tgt = xrobust ]; then | 41 | if ($screen_check | grep -q ${console_name}); then |
| 42 | echo "INFO: Screen already running" | ||
| 43 | true | ||
| 44 | else | ||
| 45 | echo "DEBUG: Starting screen" | ||
| 46 | screen -d -m -S ${console_name} | ||
| 47 | fi | ||
| 48 | fi | ||
| 49 | |||
| 50 | if [ "x$tgt" = "xrobust" ]; then | ||
| 26 | exe="Robust" | 51 | exe="Robust" |
| 27 | else | 52 | else |
| 28 | exe="OpenSim" | 53 | exe="OpenSim" |
| 29 | fi | 54 | fi |
| 55 | inidir=/opt/opensim/config/${tgt} | ||
| 56 | bindir=/opt/opensim/${osversion}/bin | ||
| 57 | cmd="/usr/bin/mono ${exe}.exe -inidirectory=${inidir} -logconfig=${inidir}/${exe}.exe.config $NeedARest" | ||
| 30 | 58 | ||
| 59 | # Check if it's already running. | ||
| 31 | if [ ! -e /var/run/opensim/${tgt} ] | 60 | if [ ! -e /var/run/opensim/${tgt} ] |
| 32 | then | 61 | then |
| 33 | cd ${bindir} | 62 | if [ "x$Screaming" = "xtrue" ] |
| 34 | /usr/bin/mono ${exe}.exe -inidirectory=${inidir} -logconfig=${inidir}/${exe}.exe.config $NeedARest | 63 | then |
| 64 | tmpfile=`mktemp` | ||
| 65 | echo "chdir ${bindir}" > ${tmpfile} | ||
| 66 | echo "screen -t ${tgt} ${cmd}" >> ${tmpfile} | ||
| 67 | chmod a+r ${tmpfile} | ||
| 68 | rm -f ${inidir}/start.screen | ||
| 69 | cp ${tmpfile} ${inidir}/start.screen | ||
| 70 | rm ${tmpfile} | ||
| 71 | # echo "INFO: start process and connect to screen (opensim)" | ||
| 72 | screen -r ${screen_session} -p "-" -X source ${inidir}/start.screen | ||
| 73 | else | ||
| 74 | cd ${bindir} | ||
| 75 | $cmd | ||
| 76 | fi | ||
| 35 | fi | 77 | fi |
| 36 | 78 | ||
| 37 | if [ "x$NeedARest" = x } | 79 | # Either way, need to start up the console after. |
| 80 | if [ "x$Screaming" = "xtrue" ] | ||
| 81 | then | ||
| 82 | echo "Starting screen client." | ||
| 83 | screen -r ${screen_session} -A | ||
| 84 | elif [ "x$NeedARest" != "x" ] | ||
| 38 | then | 85 | then |
| 39 | echo "Starting rest client." | 86 | echo "Starting rest client." |
| 40 | cd ${inidir} | 87 | cd ${inidir} |
