[Opensim-users] Question about IAR files

Roger BUCK rbuck at atomicit.com.au
Wed Feb 24 03:07:34 UTC 2010


Apologies for 'terse' - No time for detailed answer now, but here's one 
way to get started:

GMail-johnpat10 wrote:
  > 1. When I was running Save and Load IAR I'm working directly on the
> server and the command line on the server. It also saved the IAR files 
> directly to the bin folder (Diva install) and requires that they be in 
> the bin folder when I load them back into a different sim.

The path to load/save .iar can be specified - this allows for lots of 
options beyond the obvious - it is possible to both store local content 
and mount remote shares into designated local filesystem, for example:

   opt/opensim/bin/Library/folders

See: http://opensimulator.org/wiki/Inventory_Archives

This 'sort of' works for simple instances - I had trouble with path 
recursion but not had time to investigate in detail (see previous 
threads in this list)

>  This is not 
> a problem when the server and the client are on the same hardware (my 
> desktop), but when OpenSim is deployed on it's own hardware, am i going 
> to have to log in remotely to the server to run iar? Is it possible to 
> ssh to OpenSim server and run the management console to save and load 
> IAR files? How would you do that if the server is already running,

Yes to all of the above - using the 'screen' utility provides one 
solution - start your instance of opensim in a 'screen' session, login 
via ssh and access/attach logout/detach from that session as often as 
you like.

Some info about 'screen':

  http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

This example RH style sysv init script might give you some ideas:

#!/bin/bash
#
# Provides an OTT sys.v init script
#     with multiple 'screen' sessions opensim
#
# opensim
#
# chkconfig: - 51 50
# description: OpenSim diva distro
# processname: opensim

# Source function library.
. /etc/rc.d/init.d/functions

# Get config.
. /etc/sysconfig/network

# Check that networking is up.
if [ ${NETWORKING} = "no" ]
then
     exit 0
fi

# See how we were called.
case "$2" in
     realxtend)
         echo "Distro ${2}..."
         BIN_DIR="/opt/opensim/realxtend/bin"
     ;;
     *)
	# diva...
         ROOT_DIR="/opt/opensim"
         BIN_DIR="/opt/opensim/diva/bin"
esac

#echo "Debug ${2}: Set path to default disto located in: ${BIN_DIR}"

# Check app exists, or exit...
[ -f ${BIN_DIR}/OpenSim.exe ] || exit 0

function startdiva {
     cd ${BIN_DIR}
     echo " Starting OpenSim..."
     ulimit -s 262144
     screen -S opensim -d -m mono OpenSim.exe 
-physics=OpenDynamicsEngine -gridmode=false
}

function getstatus {
    session=( $(screen -ls | sed -r -ne 's/ *//g' -ne 
's/\((At|De)tached\)// p') )
    echo "Debug session: ${session}"
    screen -list
     echo "To view a screen: 'screen -r screenname'"
}

function killscreens {
     killall -15 screen > /dev/null 2>&1
     screen -wipe > /dev/null 2>&1
     echo "Opensim screen instances killed..."
}

if [ "$#" -eq "0" ]; then
     session=( $(screen -ls | sed -r -ne 's/ *//g' -ne 
's/\((At|De)tached\)// p') )
     echo "valid parameters are: ${0} [ start | stop | status | fixip ]"
else
     case "$1" in
         "start")
             startdiva
             ;;
         "stop")
             killscreens
             ;;
         "status")
             getstatus
             ;;
         "restart")
             killall -HUP mono
             $0 stop
             sleep 2s
             $0 start
             ;;
         *)
             echo "Usage: $0 {start|stop|status|restart}"
             exit 1
    esac
fi

# To display active background sessions...
screen -list

echo "To view a screen: 'screen -r screenname "

# === done ===



More information about the Opensim-users mailing list