<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sean+Heavy</id>
		<title>OpenSimulator - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sean+Heavy"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Sean_Heavy"/>
		<updated>2026-04-07T14:05:11Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/Automating_Tasks</id>
		<title>Automating Tasks</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Automating_Tasks"/>
				<updated>2009-07-01T14:55:55Z</updated>
		
		<summary type="html">&lt;p&gt;Sean Heavy: /* Linux (CentOS-5) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
==Automate Grid Startup==&lt;br /&gt;
===Windows===&lt;br /&gt;
Create a batch file to start up your grid, e.g. startGrid.bat ;&lt;br /&gt;
&lt;br /&gt;
  @Echo OFF&lt;br /&gt;
 &lt;br /&gt;
 For /F &amp;quot;Usebackq&amp;quot; %%i In (`Tasklist ^| Find /C &amp;quot;OpenSim&amp;quot;`) Do If /I %%i GTR 0 Echo There are %%i OpenSimulator processes running already. I quit! &amp;amp; Goto END&lt;br /&gt;
 &lt;br /&gt;
 :: %PROGRAMFILES% expands to your normal application path&lt;br /&gt;
 :: On an English system this is normally C:\Program Files&lt;br /&gt;
 :: If you run a 64-bit Windows, with OpenSim as a 32-bit&lt;br /&gt;
 :: application, substitute with %PROGRAMFILES(X86)%&lt;br /&gt;
 &lt;br /&gt;
 Echo Starting User Server...&lt;br /&gt;
 start &amp;quot;UserServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.UserServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Grid Server...&lt;br /&gt;
 start &amp;quot;GridServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.GridServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Asset Server...&lt;br /&gt;
 start &amp;quot;AssetServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Inventory Server...&lt;br /&gt;
 start &amp;quot;InventoryServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Messaging Server...&lt;br /&gt;
 start &amp;quot;MessagingServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Region Server...&lt;br /&gt;
 start &amp;quot;RegionServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.exe -gridmode=true&lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS! Check that you have sleep command installed, I'm unsure if all Windows versions have that.&amp;lt;br&amp;gt;&lt;br /&gt;
If sleep is not installed one can use a localhost ping instead to replace &amp;quot;sleep 3&amp;quot;.&lt;br /&gt;
 PING -n 4 127.0.0.1&amp;gt;nul&lt;br /&gt;
This knowledgebase article describes how to add a batch file to startup of Windows (before logon).&amp;lt;br&amp;gt;&lt;br /&gt;
[http://support.microsoft.com/kb/q243486/ http://support.microsoft.com/kb/q243486/]&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you have to start all applications and answer the configuration questions once before adding it to any startup.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you start the server before logon then there will be no window to close if you want to shut down the server, so you can create a &amp;quot;StopGrid.BAT&amp;quot; with:&lt;br /&gt;
 taskkill /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
 sleep 3&lt;br /&gt;
 taskkill /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
 sleep 3&lt;br /&gt;
 taskkill /F /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Or a more advanced batch that shut server processes down in the opposite order as recommended in the manual.&lt;br /&gt;
 @Echo OFF&lt;br /&gt;
 &lt;br /&gt;
 For /F &amp;quot;Usebackq&amp;quot; %%i In (`Tasklist ^| Find /C &amp;quot;OpenSim&amp;quot;`) Do If /I %%i EQU 0 Echo There are no OpenSimulator processes running. Nothing to stop.. &amp;amp; Goto END&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Echo Stopping Region Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Region Server was not running! &amp;amp; Echo. &amp;amp; Goto n1&lt;br /&gt;
 :r1&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Region Server stopped. &amp;amp; Echo. &amp;amp; Goto n1&lt;br /&gt;
 Goto r1&lt;br /&gt;
 &lt;br /&gt;
 :n1&lt;br /&gt;
 Echo Stopping Messaging Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.MessagingServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Inventory Server was not running! &amp;amp; Echo. &amp;amp; Goto n2&lt;br /&gt;
 :r2&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.MessagingServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo IMessaging Server stopped. &amp;amp; Echo. &amp;amp; Goto n2&lt;br /&gt;
 Goto r2&lt;br /&gt;
 &lt;br /&gt;
 :n2&lt;br /&gt;
 Echo Stopping Inventory Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.InventoryServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Inventory Server was not running! &amp;amp; Echo. &amp;amp; Goto n3&lt;br /&gt;
 :r3&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.InventoryServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Inventory Server stopped. &amp;amp; Echo. &amp;amp; Goto n3&lt;br /&gt;
 Goto r3&lt;br /&gt;
 &lt;br /&gt;
 :n3&lt;br /&gt;
 Echo Stopping Asset Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.AssetServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Asset Server was not running! &amp;amp; Echo. &amp;amp; Goto n4&lt;br /&gt;
 :r4&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.AssetServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Asset Server stopped. &amp;amp; Echo. &amp;amp; Goto n4&lt;br /&gt;
 Goto r4&lt;br /&gt;
 &lt;br /&gt;
 :n4&lt;br /&gt;
 Echo Stopping Grid Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.GridServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Grid Server was not running! &amp;amp; Echo. &amp;amp; Goto n5&lt;br /&gt;
 :r5&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.GridServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Grid Server stopped. &amp;amp; Echo. &amp;amp; Goto n5&lt;br /&gt;
 Goto r5&lt;br /&gt;
 &lt;br /&gt;
 :n5&lt;br /&gt;
 Echo Stopping User Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.UserServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo User Server was not running! &amp;amp; Echo. &amp;amp; Goto END&lt;br /&gt;
 :r6&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.UserServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo User Server stopped. &amp;amp; Echo. &amp;amp; Goto END&lt;br /&gt;
 Goto r6&lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
(Batch edits, [[User:Suz|Suz]] 04:46, 27 May 2008 (PDT))&lt;br /&gt;
&lt;br /&gt;
===Linux/Mac OS X===&lt;br /&gt;
You can use this [[startup_script_linux|startup script]]&lt;br /&gt;
* Use Screen Command&lt;br /&gt;
Use the screen command to automate startup&lt;br /&gt;
* Setup screen command and setup shell file&lt;br /&gt;
Linux install:&lt;br /&gt;
 apt-get install screen (ubuntu)&lt;br /&gt;
 pacman -S screen (archlinux)&lt;br /&gt;
Mac OS X: Download either MacPorts, http://www.macports.org/, or Fink, http://www.finkproject.org/ to download *nix packages&lt;br /&gt;
MacPorts&lt;br /&gt;
 sudo port install screen&lt;br /&gt;
Fink&lt;br /&gt;
 Need command line for Fink.&lt;br /&gt;
* Create file runsim.sh&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 cd opensim/bin&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S UserServer -d -m  mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S GridServer -d -m mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S AssetServer -d -m mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S InventoryServer -d -m mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S OpenSim -d -m mono OpenSim.exe -gridmode=true&lt;br /&gt;
&lt;br /&gt;
===Startup and access servers===&lt;br /&gt;
 ./runsim.sh&lt;br /&gt;
&lt;br /&gt;
If you have permission issues &lt;br /&gt;
 chmod 755 runsim.sh&lt;br /&gt;
&lt;br /&gt;
To see a list of the servers in screen:&lt;br /&gt;
 screen -ls or screen -list&lt;br /&gt;
&lt;br /&gt;
Output will look like the following:&lt;br /&gt;
 There are screens on:&lt;br /&gt;
      8419.OpenSim  (Detached)&lt;br /&gt;
      8403.InventoryServer  (Detached)&lt;br /&gt;
      8378.AssetServer  (Detached)&lt;br /&gt;
      8360.GridServer  (Detached)&lt;br /&gt;
      8347.UserServer  (Detached)&lt;br /&gt;
&lt;br /&gt;
To access server&lt;br /&gt;
 screen -r 8419.OpenSim&lt;br /&gt;
 screen -r 8403.InventoryServer&lt;br /&gt;
 etc.&lt;br /&gt;
&lt;br /&gt;
To exit screen, leaving server running, and to return to shell&lt;br /&gt;
 ctrl-a d&lt;br /&gt;
&lt;br /&gt;
===Shutdown Servers===&lt;br /&gt;
Either manually access each sceen&lt;br /&gt;
 screen -r 8419.OpenSim&lt;br /&gt;
 shutdown&lt;br /&gt;
&lt;br /&gt;
Or use&lt;br /&gt;
 killall mono&lt;br /&gt;
Or&lt;br /&gt;
 for i in `ps afxu | grep -i &amp;quot;mono.*OpenSim&amp;quot; | grep -v grep | awk {'print $2'}`; do kill $i; done&lt;br /&gt;
&lt;br /&gt;
Or to shut down each session clean, make a stop script, stopgrid.sh&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 screen -S InventoryServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S AssetServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S GridServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S UserServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
This depends on the screen NAME to be the same as in the startup script described above!&lt;br /&gt;
--[[User:Suz|Suz]] 01:42, 18 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Simulator Watchdog==&lt;br /&gt;
Watches the simulator process under Linux&lt;br /&gt;
&lt;br /&gt;
Adding an entry to call a simple script to check the process table can restart regions that crash to the command line. Here [[User_talk:BlueWall]] is a script to accomplish this with a sample cron entry for one minute intervals. While it will not fix 100% of the crashes, it will get most cases, and help keep the grid healthy. If you have questions, you can usually find me on irc.freenode.net #opensim or #osgrid&lt;br /&gt;
&lt;br /&gt;
--[[User:BlueWall|BlueWall]] 15:53, 19 June 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Automate Updates==&lt;br /&gt;
===Linux (CentOS-5)===&lt;br /&gt;
This script will save your settings, grab the latest release of OpenSim, build OpenSim, and restore your settings to the new release. It creates the new release in a new directory allowing you to revert to the previous release by just changing the 'current' link to point to whichever release you want to run.&lt;br /&gt;
&lt;br /&gt;
This script assumes you are using the SVN release number as the OpenSim directory with a link called 'current' pointing to it. So, you might, for example, have a directory called '/home/opensim/7577' and a link 'current -&amp;gt; 7577'. This script also uses a save folder for moving settings from the old release to the new.&lt;br /&gt;
&lt;br /&gt;
You will also want to compare the 'OpenSim.ini' and the 'OpenSim.ini.example' by hand after running this update script. There are often changes in this file needed for the new release. The 'diff -bB' command helps a lot in this comparison.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -x&lt;br /&gt;
&lt;br /&gt;
CWD=`pwd`&lt;br /&gt;
MWD=&amp;quot;/home/opensim&amp;quot;  # Main Working Directory&lt;br /&gt;
SAVEDIR=&amp;quot;$MWD/save&amp;quot;  # Save Directory&lt;br /&gt;
&lt;br /&gt;
if [ ! -d $SAVEDIR ]; then mkdir $SAVEDIR; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/Regions ]; then mkdir $SAVEDIR/Regions; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/DataSnapshot ]; then mkdir $SAVEDIR/DataSnapshot; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/config-include ]; then mkdir $SAVEDIR/config-include; fi&lt;br /&gt;
&lt;br /&gt;
cd $MWD&lt;br /&gt;
&lt;br /&gt;
# save current settings&lt;br /&gt;
cp current/bin/*.xml $SAVEDIR&lt;br /&gt;
cp current/bin/*.db $SAVEDIR&lt;br /&gt;
cp current/bin/*.ini $SAVEDIR&lt;br /&gt;
cp current/bin/config-include/*.ini $SAVEDIR/config-include/&lt;br /&gt;
cp current/bin/Regions/*xml $SAVEDIR/Regions/&lt;br /&gt;
cp current/bin/DataSnapshot/*xml $SAVEDIR/DataSnapshot/&lt;br /&gt;
&lt;br /&gt;
# Get fresh copy of OpenSim&lt;br /&gt;
REV=`svn info http://opensimulator.org/svn/opensim/trunk | fgrep Revision | awk '{print $2}'`&lt;br /&gt;
svn -r $REV co http://opensimulator.org/svn/opensim/trunk $REV&lt;br /&gt;
rm current&lt;br /&gt;
ln -s $REV current&lt;br /&gt;
cd current&lt;br /&gt;
./runprebuild.sh&lt;br /&gt;
nant&lt;br /&gt;
cd bin&lt;br /&gt;
# restore settings&lt;br /&gt;
if [ ! -d ./DataSnapshot ]; then mkdir ./DataSnapshot; fi&lt;br /&gt;
cp $SAVEDIR/*.xml .&lt;br /&gt;
cp $SAVEDIR/*.db .&lt;br /&gt;
cp $SAVEDIR/*.ini .&lt;br /&gt;
cp $SAVEDIR/config-include/* config-include/&lt;br /&gt;
cp $SAVEDIR/Regions/* Regions/&lt;br /&gt;
cp $SAVEDIR/DataSnapshot/* DataSnapshot/&lt;br /&gt;
cd $MWD&lt;br /&gt;
cd current&lt;br /&gt;
#&lt;br /&gt;
cd $CWD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative methods==&lt;br /&gt;
&lt;br /&gt;
Start/stop/restart OpenSim on Linux with [[Autorestart_With_Upstart|upstart]]&lt;/div&gt;</summary>
		<author><name>Sean Heavy</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Automating_Tasks</id>
		<title>Automating Tasks</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Automating_Tasks"/>
				<updated>2009-07-01T14:49:17Z</updated>
		
		<summary type="html">&lt;p&gt;Sean Heavy: /* Linux (CentOS-5) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
==Automate Grid Startup==&lt;br /&gt;
===Windows===&lt;br /&gt;
Create a batch file to start up your grid, e.g. startGrid.bat ;&lt;br /&gt;
&lt;br /&gt;
  @Echo OFF&lt;br /&gt;
 &lt;br /&gt;
 For /F &amp;quot;Usebackq&amp;quot; %%i In (`Tasklist ^| Find /C &amp;quot;OpenSim&amp;quot;`) Do If /I %%i GTR 0 Echo There are %%i OpenSimulator processes running already. I quit! &amp;amp; Goto END&lt;br /&gt;
 &lt;br /&gt;
 :: %PROGRAMFILES% expands to your normal application path&lt;br /&gt;
 :: On an English system this is normally C:\Program Files&lt;br /&gt;
 :: If you run a 64-bit Windows, with OpenSim as a 32-bit&lt;br /&gt;
 :: application, substitute with %PROGRAMFILES(X86)%&lt;br /&gt;
 &lt;br /&gt;
 Echo Starting User Server...&lt;br /&gt;
 start &amp;quot;UserServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.UserServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Grid Server...&lt;br /&gt;
 start &amp;quot;GridServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.GridServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Asset Server...&lt;br /&gt;
 start &amp;quot;AssetServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Inventory Server...&lt;br /&gt;
 start &amp;quot;InventoryServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Messaging Server...&lt;br /&gt;
 start &amp;quot;MessagingServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Region Server...&lt;br /&gt;
 start &amp;quot;RegionServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.exe -gridmode=true&lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS! Check that you have sleep command installed, I'm unsure if all Windows versions have that.&amp;lt;br&amp;gt;&lt;br /&gt;
If sleep is not installed one can use a localhost ping instead to replace &amp;quot;sleep 3&amp;quot;.&lt;br /&gt;
 PING -n 4 127.0.0.1&amp;gt;nul&lt;br /&gt;
This knowledgebase article describes how to add a batch file to startup of Windows (before logon).&amp;lt;br&amp;gt;&lt;br /&gt;
[http://support.microsoft.com/kb/q243486/ http://support.microsoft.com/kb/q243486/]&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you have to start all applications and answer the configuration questions once before adding it to any startup.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you start the server before logon then there will be no window to close if you want to shut down the server, so you can create a &amp;quot;StopGrid.BAT&amp;quot; with:&lt;br /&gt;
 taskkill /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
 sleep 3&lt;br /&gt;
 taskkill /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
 sleep 3&lt;br /&gt;
 taskkill /F /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Or a more advanced batch that shut server processes down in the opposite order as recommended in the manual.&lt;br /&gt;
 @Echo OFF&lt;br /&gt;
 &lt;br /&gt;
 For /F &amp;quot;Usebackq&amp;quot; %%i In (`Tasklist ^| Find /C &amp;quot;OpenSim&amp;quot;`) Do If /I %%i EQU 0 Echo There are no OpenSimulator processes running. Nothing to stop.. &amp;amp; Goto END&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Echo Stopping Region Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Region Server was not running! &amp;amp; Echo. &amp;amp; Goto n1&lt;br /&gt;
 :r1&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Region Server stopped. &amp;amp; Echo. &amp;amp; Goto n1&lt;br /&gt;
 Goto r1&lt;br /&gt;
 &lt;br /&gt;
 :n1&lt;br /&gt;
 Echo Stopping Messaging Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.MessagingServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Inventory Server was not running! &amp;amp; Echo. &amp;amp; Goto n2&lt;br /&gt;
 :r2&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.MessagingServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo IMessaging Server stopped. &amp;amp; Echo. &amp;amp; Goto n2&lt;br /&gt;
 Goto r2&lt;br /&gt;
 &lt;br /&gt;
 :n2&lt;br /&gt;
 Echo Stopping Inventory Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.InventoryServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Inventory Server was not running! &amp;amp; Echo. &amp;amp; Goto n3&lt;br /&gt;
 :r3&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.InventoryServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Inventory Server stopped. &amp;amp; Echo. &amp;amp; Goto n3&lt;br /&gt;
 Goto r3&lt;br /&gt;
 &lt;br /&gt;
 :n3&lt;br /&gt;
 Echo Stopping Asset Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.AssetServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Asset Server was not running! &amp;amp; Echo. &amp;amp; Goto n4&lt;br /&gt;
 :r4&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.AssetServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Asset Server stopped. &amp;amp; Echo. &amp;amp; Goto n4&lt;br /&gt;
 Goto r4&lt;br /&gt;
 &lt;br /&gt;
 :n4&lt;br /&gt;
 Echo Stopping Grid Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.GridServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Grid Server was not running! &amp;amp; Echo. &amp;amp; Goto n5&lt;br /&gt;
 :r5&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.GridServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Grid Server stopped. &amp;amp; Echo. &amp;amp; Goto n5&lt;br /&gt;
 Goto r5&lt;br /&gt;
 &lt;br /&gt;
 :n5&lt;br /&gt;
 Echo Stopping User Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.UserServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo User Server was not running! &amp;amp; Echo. &amp;amp; Goto END&lt;br /&gt;
 :r6&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.UserServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo User Server stopped. &amp;amp; Echo. &amp;amp; Goto END&lt;br /&gt;
 Goto r6&lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
(Batch edits, [[User:Suz|Suz]] 04:46, 27 May 2008 (PDT))&lt;br /&gt;
&lt;br /&gt;
===Linux/Mac OS X===&lt;br /&gt;
You can use this [[startup_script_linux|startup script]]&lt;br /&gt;
* Use Screen Command&lt;br /&gt;
Use the screen command to automate startup&lt;br /&gt;
* Setup screen command and setup shell file&lt;br /&gt;
Linux install:&lt;br /&gt;
 apt-get install screen (ubuntu)&lt;br /&gt;
 pacman -S screen (archlinux)&lt;br /&gt;
Mac OS X: Download either MacPorts, http://www.macports.org/, or Fink, http://www.finkproject.org/ to download *nix packages&lt;br /&gt;
MacPorts&lt;br /&gt;
 sudo port install screen&lt;br /&gt;
Fink&lt;br /&gt;
 Need command line for Fink.&lt;br /&gt;
* Create file runsim.sh&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 cd opensim/bin&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S UserServer -d -m  mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S GridServer -d -m mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S AssetServer -d -m mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S InventoryServer -d -m mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S OpenSim -d -m mono OpenSim.exe -gridmode=true&lt;br /&gt;
&lt;br /&gt;
===Startup and access servers===&lt;br /&gt;
 ./runsim.sh&lt;br /&gt;
&lt;br /&gt;
If you have permission issues &lt;br /&gt;
 chmod 755 runsim.sh&lt;br /&gt;
&lt;br /&gt;
To see a list of the servers in screen:&lt;br /&gt;
 screen -ls or screen -list&lt;br /&gt;
&lt;br /&gt;
Output will look like the following:&lt;br /&gt;
 There are screens on:&lt;br /&gt;
      8419.OpenSim  (Detached)&lt;br /&gt;
      8403.InventoryServer  (Detached)&lt;br /&gt;
      8378.AssetServer  (Detached)&lt;br /&gt;
      8360.GridServer  (Detached)&lt;br /&gt;
      8347.UserServer  (Detached)&lt;br /&gt;
&lt;br /&gt;
To access server&lt;br /&gt;
 screen -r 8419.OpenSim&lt;br /&gt;
 screen -r 8403.InventoryServer&lt;br /&gt;
 etc.&lt;br /&gt;
&lt;br /&gt;
To exit screen, leaving server running, and to return to shell&lt;br /&gt;
 ctrl-a d&lt;br /&gt;
&lt;br /&gt;
===Shutdown Servers===&lt;br /&gt;
Either manually access each sceen&lt;br /&gt;
 screen -r 8419.OpenSim&lt;br /&gt;
 shutdown&lt;br /&gt;
&lt;br /&gt;
Or use&lt;br /&gt;
 killall mono&lt;br /&gt;
Or&lt;br /&gt;
 for i in `ps afxu | grep -i &amp;quot;mono.*OpenSim&amp;quot; | grep -v grep | awk {'print $2'}`; do kill $i; done&lt;br /&gt;
&lt;br /&gt;
Or to shut down each session clean, make a stop script, stopgrid.sh&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 screen -S InventoryServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S AssetServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S GridServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S UserServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
This depends on the screen NAME to be the same as in the startup script described above!&lt;br /&gt;
--[[User:Suz|Suz]] 01:42, 18 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Simulator Watchdog==&lt;br /&gt;
Watches the simulator process under Linux&lt;br /&gt;
&lt;br /&gt;
Adding an entry to call a simple script to check the process table can restart regions that crash to the command line. Here [[User_talk:BlueWall]] is a script to accomplish this with a sample cron entry for one minute intervals. While it will not fix 100% of the crashes, it will get most cases, and help keep the grid healthy. If you have questions, you can usually find me on irc.freenode.net #opensim or #osgrid&lt;br /&gt;
&lt;br /&gt;
--[[User:BlueWall|BlueWall]] 15:53, 19 June 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Automate Updates==&lt;br /&gt;
===Linux (CentOS-5)===&lt;br /&gt;
This script will save your settings, grab the latest release of OpenSim, build OpenSim, and restore your settings to the new release. It creates the new release in a new directory allowing you to revert to the previous release by just changing the 'current' link to point to whichever release you want to run.&lt;br /&gt;
&lt;br /&gt;
This script assumes you are using the SVN release number as the OpenSim directory with a link called 'current' pointing to it. So, you might, for example, have a directory called '/home/opensim/7577' and a link 'current -&amp;gt; 7577'. This script also uses a save folder for moving settings from the old release to the new.&lt;br /&gt;
&lt;br /&gt;
You will also want to compare the 'OpenSim.ini' and the 'OpenSim.ini.example' by hand after running this update script. There are often changes in this file needed for the new release. The 'diff -bB' command helps a lot in this comparison.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -x&lt;br /&gt;
&lt;br /&gt;
CWD=`pwd`&lt;br /&gt;
MWD=&amp;quot;/home/opensim&amp;quot;  # Main Working Directory&lt;br /&gt;
SAVEDIR=&amp;quot;$MWD/save&amp;quot;  # Save Directory&lt;br /&gt;
&lt;br /&gt;
if [ ! -d $SAVEDIR ]; then mkdir $SAVEDIR; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/Regions ]; then mkdir $SAVEDIR/Regions; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/DataSnapshot ]; then mkdir $SAVEDIR/DataSnapshot; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/config-include ]; then mkdir $SAVEDIR/config-include; fi&lt;br /&gt;
&lt;br /&gt;
cd $MWD&lt;br /&gt;
&lt;br /&gt;
# save current settings&lt;br /&gt;
cp current/bin/*.xml $SAVEDIR&lt;br /&gt;
cp current/bin/*.db $SAVEDIR&lt;br /&gt;
cp current/bin/*.ini $SAVEDIR&lt;br /&gt;
cp current/bin/config-include/*.ini $SAVEDIR/config-include/&lt;br /&gt;
cp current/bin/Regions/*xml $SAVEDIR/Regions/&lt;br /&gt;
cp current/bin/DataSnapshot/*xml $SAVEDIR/DataSnapshot/&lt;br /&gt;
&lt;br /&gt;
# Get fresh copy of OpenSim&lt;br /&gt;
REV=`svn info http://opensimulator.org/svn/opensim/trunk | fgrep Revision | awk '{print $2}'`&lt;br /&gt;
svn -r $REV co http://opensimulator.org/svn/opensim/trunk $REV&lt;br /&gt;
rm current&lt;br /&gt;
ln -s $REV current&lt;br /&gt;
cd current&lt;br /&gt;
./runprebuild.sh&lt;br /&gt;
nant&lt;br /&gt;
cd bin&lt;br /&gt;
# restore settings&lt;br /&gt;
if [ ! -d ./DataSnapshot ]; then mkdir ./DataSnapshot; fi&lt;br /&gt;
cp $SAVEDIR/*.xml .&lt;br /&gt;
cp $SAVEDIR/*.db .&lt;br /&gt;
cp $SAVEDIR/*.ini .&lt;br /&gt;
cp $SAVEDIR/config-include/* config-include/&lt;br /&gt;
cp $SAVEDIR/Regions/* Regions/&lt;br /&gt;
cp $SAVEDIR/DataSnapshot/* DataSnapshot/&lt;br /&gt;
cd $MWD&lt;br /&gt;
cd current&lt;br /&gt;
cp -r $SAVEDIR/Encitra .&lt;br /&gt;
#&lt;br /&gt;
cd $CWD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative methods==&lt;br /&gt;
&lt;br /&gt;
Start/stop/restart OpenSim on Linux with [[Autorestart_With_Upstart|upstart]]&lt;/div&gt;</summary>
		<author><name>Sean Heavy</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Automating_Tasks</id>
		<title>Automating Tasks</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Automating_Tasks"/>
				<updated>2008-12-12T18:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sean Heavy: Added 'Automate Updates'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Automate Grid Startup==&lt;br /&gt;
===Windows===&lt;br /&gt;
Create a batch file to start up your grid, e.g. startGrid.bat ;&lt;br /&gt;
&lt;br /&gt;
  @Echo OFF&lt;br /&gt;
 &lt;br /&gt;
 For /F &amp;quot;Usebackq&amp;quot; %%i In (`Tasklist ^| Find /C &amp;quot;OpenSim&amp;quot;`) Do If /I %%i GTR 0 Echo There are %%i OpenSimulator processes running already. I quit! &amp;amp; Goto END&lt;br /&gt;
 &lt;br /&gt;
 :: %PROGRAMFILES% expands to your normal application path&lt;br /&gt;
 :: On an English system this is normally C:\Program Files&lt;br /&gt;
 :: If you run a 64-bit Windows, with OpenSim as a 32-bit&lt;br /&gt;
 :: application, substitute with %PROGRAMFILES(X86)%&lt;br /&gt;
 &lt;br /&gt;
 Echo Starting User Server...&lt;br /&gt;
 start &amp;quot;UserServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.UserServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Grid Server...&lt;br /&gt;
 start &amp;quot;GridServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.GridServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Asset Server...&lt;br /&gt;
 start &amp;quot;AssetServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Inventory Server...&lt;br /&gt;
 start &amp;quot;InventoryServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 sleep 5&lt;br /&gt;
 Echo Starting Region Server...&lt;br /&gt;
 start &amp;quot;RegionServer&amp;quot; /MIN /D &amp;quot;%PROGRAMFILES%\OpenSim&amp;quot; OpenSim.exe -gridmode=true&lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS! Check that you have sleep command installed, I'm unsure if all Windows versions have that.&amp;lt;br&amp;gt;&lt;br /&gt;
If sleep is not installed one can use a localhost ping instead to replace &amp;quot;sleep 3&amp;quot;.&lt;br /&gt;
 PING -n 4 127.0.0.1&amp;gt;nul&lt;br /&gt;
This knowledgebase article describes how to add a batch file to startup of Windows (before logon).&amp;lt;br&amp;gt;&lt;br /&gt;
[http://support.microsoft.com/kb/q243486/ http://support.microsoft.com/kb/q243486/]&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you have to start all applications and answer the configuration questions once before adding it to any startup.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you start the server before logon then there will be no window to close if you want to shut down the server, so you can create a &amp;quot;StopGrid.BAT&amp;quot; with:&lt;br /&gt;
 taskkill /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
 sleep 3&lt;br /&gt;
 taskkill /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
 sleep 3&lt;br /&gt;
 taskkill /F /FI &amp;quot;IMAGENAME eq OpenSim.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Or a more advanced batch that shut server processes down in the opposite order as recommended in the manual.&lt;br /&gt;
 @Echo OFF&lt;br /&gt;
 &lt;br /&gt;
 For /F &amp;quot;Usebackq&amp;quot; %%i In (`Tasklist ^| Find /C &amp;quot;OpenSim&amp;quot;`) Do If /I %%i EQU 0 Echo There are no OpenSimulator processes running. Nothing to stop.. &amp;amp; Goto END&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Echo Stopping Region Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Region Server was not running! &amp;amp; Echo. &amp;amp; Goto n1&lt;br /&gt;
 :r1&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Region Server stopped. &amp;amp; Echo. &amp;amp; Goto n1&lt;br /&gt;
 Goto r1&lt;br /&gt;
 &lt;br /&gt;
 :n1&lt;br /&gt;
 Echo Stopping Inventory Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.InventoryServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Inventory Server was not running! &amp;amp; Echo. &amp;amp; Goto n2&lt;br /&gt;
 :r2&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.InventoryServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Inventory Server stopped. &amp;amp; Echo. &amp;amp; Goto n2&lt;br /&gt;
 Goto r2&lt;br /&gt;
 &lt;br /&gt;
 :n2&lt;br /&gt;
 Echo Stopping Asset Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.AssetServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Asset Server was not running! &amp;amp; Echo. &amp;amp; Goto n3&lt;br /&gt;
 :r3&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.AssetServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Asset Server stopped. &amp;amp; Echo. &amp;amp; Goto n3&lt;br /&gt;
 Goto r3&lt;br /&gt;
 &lt;br /&gt;
 :n3&lt;br /&gt;
 Echo Stopping Grid Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.GridServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo Grid Server was not running! &amp;amp; Echo. &amp;amp; Goto n4&lt;br /&gt;
 :r4&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.GridServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo Grid Server stopped. &amp;amp; Echo. &amp;amp; Goto n4&lt;br /&gt;
 Goto r4&lt;br /&gt;
 &lt;br /&gt;
 :n4&lt;br /&gt;
 Echo Stopping User Server...&lt;br /&gt;
 taskkill /T /IM OpenSim.Grid.UserServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 128 Echo User Server was not running! &amp;amp; Echo. &amp;amp; Goto END&lt;br /&gt;
 :r5&lt;br /&gt;
 If ERRORLEVEL 1 taskkill /T /F /IM OpenSim.Grid.UserServer.exe &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;br /&gt;
 If ERRORLEVEL 0 Echo User Server stopped. &amp;amp; Echo. &amp;amp; Goto END&lt;br /&gt;
 Goto r5&lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
(Batch edits, [[User:Suz|Suz]] 04:46, 27 May 2008 (PDT))&lt;br /&gt;
&lt;br /&gt;
===Linux/Mac OS X===&lt;br /&gt;
You can use this [[startup_script_linux|startup script]]&lt;br /&gt;
* Use Screen Command&lt;br /&gt;
Use the screen command to automate startup&lt;br /&gt;
* Setup screen command and setup shell file&lt;br /&gt;
Linux install:&lt;br /&gt;
 apt-get install screen (ubuntu)&lt;br /&gt;
 pacman -S screen (archlinux)&lt;br /&gt;
Mac OS X: Download either MacPorts, http://www.macports.org/, or Fink, http://www.finkproject.org/ to download *nix packages&lt;br /&gt;
MacPorts&lt;br /&gt;
 sudo port install screen&lt;br /&gt;
Fink&lt;br /&gt;
 Need command line for Fink.&lt;br /&gt;
* Create file runsim.sh&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 cd opensim/bin&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S UserServer -d -m  mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S GridServer -d -m mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S AssetServer -d -m mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S InventoryServer -d -m mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 sleep 3&lt;br /&gt;
 screen -S OpenSim -d -m mono OpenSim.exe -gridmode=true&lt;br /&gt;
&lt;br /&gt;
===Startup and access servers===&lt;br /&gt;
 ./runsim.sh&lt;br /&gt;
&lt;br /&gt;
If you have permission issues &lt;br /&gt;
 chmod 755 runsim.sh&lt;br /&gt;
&lt;br /&gt;
To see a list of the servers in screen:&lt;br /&gt;
 screen -ls or screen -list&lt;br /&gt;
&lt;br /&gt;
Output will look like the following:&lt;br /&gt;
 There are screens on:&lt;br /&gt;
      8419.OpenSim  (Detached)&lt;br /&gt;
      8403.InventoryServer  (Detached)&lt;br /&gt;
      8378.AssetServer  (Detached)&lt;br /&gt;
      8360.GridServer  (Detached)&lt;br /&gt;
      8347.UserServer  (Detached)&lt;br /&gt;
&lt;br /&gt;
To access server&lt;br /&gt;
 screen -r 8419.OpenSim&lt;br /&gt;
 screen -r 8403.InventoryServer&lt;br /&gt;
 etc.&lt;br /&gt;
&lt;br /&gt;
To exit screen, leaving server running, and to return to shell&lt;br /&gt;
 ctrl-a d&lt;br /&gt;
&lt;br /&gt;
===Shutdown Servers===&lt;br /&gt;
Either manually access each sceen&lt;br /&gt;
 screen -r 8419.OpenSim&lt;br /&gt;
 shutdown&lt;br /&gt;
&lt;br /&gt;
Or use&lt;br /&gt;
 killall mono&lt;br /&gt;
Or&lt;br /&gt;
 for i in `ps afxu | grep -i &amp;quot;mono.*OpenSim&amp;quot; | grep -v grep | awk {'print $2'}`; do kill $i; done&lt;br /&gt;
&lt;br /&gt;
Or to shut down each session clean, make a stop script, stopgrid.sh&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 screen -S InventoryServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S AssetServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S GridServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 screen -S UserServer -X eval &amp;quot;stuff shutdown^M&amp;quot;&lt;br /&gt;
This depends on the screen NAME to be the same as in the startup script described above!&lt;br /&gt;
--[[User:Suz|Suz]] 01:42, 18 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Simulator Watchdog==&lt;br /&gt;
Watches the simulator process under Linux&lt;br /&gt;
&lt;br /&gt;
Adding an entry to call a simple script to check the process table can restart regions that crash to the command line. Here [[User_talk:BlueWall]] is a script to accomplish this with a sample cron entry for one minute intervals. While it will not fix 100% of the crashes, it will get most cases, and help keep the grid healthy. If you have questions, you can usually find me on irc.freenode.net #opensim or #osgrid&lt;br /&gt;
&lt;br /&gt;
--[[User:BlueWall|BlueWall]] 15:53, 19 June 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Automate Updates==&lt;br /&gt;
===Linux (CentOS-5)===&lt;br /&gt;
This script will save your settings, grab the latest release of OpenSim, build OpenSim, and restore your settings to the new release. It creates the new release in a new directory allowing you to revert to the previous release by just changing the 'current' link to point to whichever release you want to run.&lt;br /&gt;
&lt;br /&gt;
This script assumes you are using the SVN release number as the OpenSim directory with a link called 'current' pointing to it. So, you might, for example, have a directory called '/home/opensim/7577' and a link 'current -&amp;gt; 7577'. This script also uses a save folder for moving settings from the old release to the new.&lt;br /&gt;
&lt;br /&gt;
You will also want to compare the 'OpenSim.ini' and the 'OpenSim.ini.example' by hand after running this update script. There are often changes in this file needed for the new release. The 'diff -bB' command helps a lot in this comparison.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -x&lt;br /&gt;
&lt;br /&gt;
CWD=`pwd`&lt;br /&gt;
MWD=&amp;quot;/home/opensim&amp;quot;  # Main Working Directory (change appropriately)&lt;br /&gt;
SAVEDIR=&amp;quot;$MWD/save&amp;quot;  # Save Directory&lt;br /&gt;
&lt;br /&gt;
if [ ! -d $SAVEDIR ]; then mkdir $SAVEDIR; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/Regions ]; then mkdir $SAVEDIR/Regions; fi&lt;br /&gt;
if [ ! -d $SAVEDIR/DataSnapshot ]; then mkdir $SAVEDIR/DataSnapshot; fi&lt;br /&gt;
&lt;br /&gt;
cd $MWD&lt;br /&gt;
&lt;br /&gt;
# Save current settings&lt;br /&gt;
cp current/bin/estate_settings.xml $SAVEDIR&lt;br /&gt;
cp current/bin/*.db $SAVEDIR&lt;br /&gt;
cp current/bin/ImageService.dll $SAVEDIR&lt;br /&gt;
cp current/bin/OpenSim.ini $SAVEDIR&lt;br /&gt;
cp current/bin/LaunchSLClient.ini $SAVEDIR&lt;br /&gt;
cp current/bin/Regions/*xml $SAVEDIR/Regions/&lt;br /&gt;
cp current/bin/DataSnapshot/*xml $SAVEDIR/DataSnapshot/&lt;br /&gt;
&lt;br /&gt;
# Get fresh copy of OpenSim&lt;br /&gt;
REV=`svn info http://opensimulator.org/svn/opensim/trunk | fgrep Revision | awk '{print $2}'`&lt;br /&gt;
svn -r $REV co http://opensimulator.org/svn/opensim/trunk $REV&lt;br /&gt;
# Repoint the 'current' link to the new release&lt;br /&gt;
rm current&lt;br /&gt;
ln -s $REV current&lt;br /&gt;
cd current&lt;br /&gt;
# Build OpenSim&lt;br /&gt;
./runprebuild.sh&lt;br /&gt;
nant&lt;br /&gt;
cd bin&lt;br /&gt;
&lt;br /&gt;
# Restore settings&lt;br /&gt;
if ![ -d ./DataSnapshot ]; then mkdir ./DataSnapshot; fi&lt;br /&gt;
cp $SAVEDIR/estate_settings.xml .&lt;br /&gt;
cp $SAVEDIR/*.db .&lt;br /&gt;
cp $SAVEDIR/ImageService.dll .&lt;br /&gt;
cp $SAVEDIR/OpenSim.ini .&lt;br /&gt;
cp $SAVEDIR/LaunchSLClient.ini .&lt;br /&gt;
cp $SAVEDIR/Regions/*.xml Regions/&lt;br /&gt;
cp $SAVEDIR/DataSnapshot/*.xml DataSnapshot/&lt;br /&gt;
&lt;br /&gt;
cd $CWD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sean Heavy</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin</id>
		<title>RemoteAdmin</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin"/>
				<updated>2008-10-19T19:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;Sean Heavy: /* RemoteAdmin Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background-color:#ffa0a0; padding:15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Caution ! The RemoteAdmin feature is unsecured at this time. For testing uses only.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to Setup the Remote Admin ==&lt;br /&gt;
&lt;br /&gt;
=== Setup OpenSim === &lt;br /&gt;
&lt;br /&gt;
First you should enable the remote admin interface to do so just add the following lines to your OpenSim.ini file:&lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 access_password = secret&lt;br /&gt;
&lt;br /&gt;
=== Example in Python ===&lt;br /&gt;
 # Author  : DrScofield &lt;br /&gt;
 # Source  : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
 # License : BSD License&lt;br /&gt;
 &lt;br /&gt;
 #!/usr/bin/python  &lt;br /&gt;
 import xmlrpclib  &lt;br /&gt;
   &lt;br /&gt;
 # XML-RPC URL (http_listener_port)  &lt;br /&gt;
 gridServerURL = ‘http://127.0.0.1:9000′  &lt;br /&gt;
    &lt;br /&gt;
 # instantiate server object  &lt;br /&gt;
 gridServer = xmlrpclib.Server(gridServerURL)  &lt;br /&gt;
   &lt;br /&gt;
 # invoke admin_alert: requires password and message  &lt;br /&gt;
 gridServer.admin_broadcast({’password’: ’secret’,   ‘message’: ‘the answer is 42′})&lt;br /&gt;
&lt;br /&gt;
=== RemoteAdmin executable for Windows ===&lt;br /&gt;
&lt;br /&gt;
The RemoteAdmin executable for Windows is a command line tool based on the RemoteAdmin PHP Class.&lt;br /&gt;
&lt;br /&gt;
Downloads and documentation on the [http://lab.newworldgrid.com/index.php/RemoteAdmin_Executable RemoteAdmin Executable webpage]&lt;br /&gt;
&lt;br /&gt;
=== Example in PHP ===&lt;br /&gt;
&lt;br /&gt;
This example needs the RemoteAdmin PHP Class file available [http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass here].&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Author  : Olish Newman&lt;br /&gt;
// Source  : http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass&lt;br /&gt;
// Licence : BSD License&lt;br /&gt;
&lt;br /&gt;
// Including the RemoteAdmin PHP class. It can be downloaded from the link above.&lt;br /&gt;
include('RemoteAdmin.php');&lt;br /&gt;
&lt;br /&gt;
// Instantiate the class with parameters identical to the Python example above&lt;br /&gt;
$myRemoteAdmin = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_broadcast&lt;br /&gt;
$parameters = array('message' =&amp;gt; 'the answer is 42');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_broadcast', $parameters);&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_shutdown (example for use without parameters)&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_create_user (multiple parameters)&lt;br /&gt;
$parameters = array('user_firstname' =&amp;gt; 'Ruth', 'user_lastname' =&amp;gt; 'OpenSim', 'user_password' =&amp;gt; 'MyPassword', 'start_region_x' =&amp;gt; '1000', 'start_region_y' =&amp;gt; '1000');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_create_user', $parameters);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: This script does not appear to work for create user because it tries to pass the start region x and y as a string when the RemoteAdmin needs a string.  The class needs to be edited to pass it as a number or edit the remoteadmin source to convert the string to a unsigned int.&lt;br /&gt;
&lt;br /&gt;
Another example in PHP5, using CURL.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//This is the slightly modified RPC-class of the BSD-licensed WiXTD webportal&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RemotePC {&lt;br /&gt;
&lt;br /&gt;
	function __construct() {&lt;br /&gt;
        $this-&amp;gt;serveruri = &amp;quot;http://myhost&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;serverport =&amp;quot;9000&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;password =&amp;quot;foobar&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function call($command,$parameters) {&lt;br /&gt;
        $parameters['password'] = $this-&amp;gt;password;&lt;br /&gt;
	$request = xmlrpc_encode_request($command, $parameters);&lt;br /&gt;
	$ch = curl_init();&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_URL, $this-&amp;gt;serveruri);&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_PORT, $this-&amp;gt;serverport]);	&lt;br /&gt;
	curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_TIMEOUT, 5);	&lt;br /&gt;
	$result = curl_exec($ch);&lt;br /&gt;
	curl_close($ch); &lt;br /&gt;
	return xmlrpc_decode($result);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Commands ==&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
   &amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;  &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_create_region | admin_create_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Create a new region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name, region_master_first, &lt;br /&gt;
region_master_last, region_master_password, listen_ip, external_address&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_delete_region | admin_delete_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Delete a region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_region_query| admin_region_query]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Query the 'health' of a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;region_uuid or region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_shutdown | admin_shutdown]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Shut down the simulator&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;''No parameter needed''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_broadcast| admin_broadcast]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Send a general alert&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;message&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_restart| admin_restart]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Restart Region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_heightmap| admin_load_heightmap]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Load Height Map&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename, regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_create_user| admin_create_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Create a new user&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname, user_lastname, user_password, &lt;br /&gt;
start_region_x, start_region_y&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_exists_user| admin_exists_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Check whether a certain user account exists&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname, user_lastname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_update_user| admin_update_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Update the password/home of a user account&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname user_lastname user_password start_region_x start_region_y&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_xml| admin_load_xml]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Execute the Load XML command&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_save_xml| admin_save_xml]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Execute the Save XML command&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_oar| admin_load_oar]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Load a saved OAR file into a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_region_query| admin_region_query]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Query the 'health' of a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;region_uuid or region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
Thanks to DrScofield for the Python Script&lt;br /&gt;
Sources : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Sean Heavy</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin</id>
		<title>RemoteAdmin</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin"/>
				<updated>2008-10-19T19:19:36Z</updated>
		
		<summary type="html">&lt;p&gt;Sean Heavy: /* RemoteAdmin Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background-color:#ffa0a0; padding:15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Caution ! The RemoteAdmin feature is unsecured at this time. For testing uses only.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to Setup the Remote Admin ==&lt;br /&gt;
&lt;br /&gt;
=== Setup OpenSim === &lt;br /&gt;
&lt;br /&gt;
First you should enable the remote admin interface to do so just add the following lines to your OpenSim.ini file:&lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 access_password = secret&lt;br /&gt;
&lt;br /&gt;
=== Example in Python ===&lt;br /&gt;
 # Author  : DrScofield &lt;br /&gt;
 # Source  : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
 # License : BSD License&lt;br /&gt;
 &lt;br /&gt;
 #!/usr/bin/python  &lt;br /&gt;
 import xmlrpclib  &lt;br /&gt;
   &lt;br /&gt;
 # XML-RPC URL (http_listener_port)  &lt;br /&gt;
 gridServerURL = ‘http://127.0.0.1:9000′  &lt;br /&gt;
    &lt;br /&gt;
 # instantiate server object  &lt;br /&gt;
 gridServer = xmlrpclib.Server(gridServerURL)  &lt;br /&gt;
   &lt;br /&gt;
 # invoke admin_alert: requires password and message  &lt;br /&gt;
 gridServer.admin_broadcast({’password’: ’secret’,   ‘message’: ‘the answer is 42′})&lt;br /&gt;
&lt;br /&gt;
=== RemoteAdmin executable for Windows ===&lt;br /&gt;
&lt;br /&gt;
The RemoteAdmin executable for Windows is a command line tool based on the RemoteAdmin PHP Class.&lt;br /&gt;
&lt;br /&gt;
Downloads and documentation on the [http://lab.newworldgrid.com/index.php/RemoteAdmin_Executable RemoteAdmin Executable webpage]&lt;br /&gt;
&lt;br /&gt;
=== Example in PHP ===&lt;br /&gt;
&lt;br /&gt;
This example needs the RemoteAdmin PHP Class file available [http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass here].&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Author  : Olish Newman&lt;br /&gt;
// Source  : http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass&lt;br /&gt;
// Licence : BSD License&lt;br /&gt;
&lt;br /&gt;
// Including the RemoteAdmin PHP class. It can be downloaded from the link above.&lt;br /&gt;
include('RemoteAdmin.php');&lt;br /&gt;
&lt;br /&gt;
// Instantiate the class with parameters identical to the Python example above&lt;br /&gt;
$myRemoteAdmin = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_broadcast&lt;br /&gt;
$parameters = array('message' =&amp;gt; 'the answer is 42');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_broadcast', $parameters);&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_shutdown (example for use without parameters)&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_create_user (multiple parameters)&lt;br /&gt;
$parameters = array('user_firstname' =&amp;gt; 'Ruth', 'user_lastname' =&amp;gt; 'OpenSim', 'user_password' =&amp;gt; 'MyPassword', 'start_region_x' =&amp;gt; '1000', 'start_region_y' =&amp;gt; '1000');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_create_user', $parameters);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: This script does not appear to work for create user because it tries to pass the start region x and y as a string when the RemoteAdmin needs a string.  The class needs to be edited to pass it as a number or edit the remoteadmin source to convert the string to a unsigned int.&lt;br /&gt;
&lt;br /&gt;
Another example in PHP5, using CURL.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//This is the slightly modified RPC-class of the BSD-licensed WiXTD webportal&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RemotePC {&lt;br /&gt;
&lt;br /&gt;
	function __construct() {&lt;br /&gt;
        $this-&amp;gt;serveruri = &amp;quot;http://myhost&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;serverport =&amp;quot;9000&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;password =&amp;quot;foobar&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function call($command,$parameters) {&lt;br /&gt;
        $parameters['password'] = $this-&amp;gt;password;&lt;br /&gt;
	$request = xmlrpc_encode_request($command, $parameters);&lt;br /&gt;
	$ch = curl_init();&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_URL, $this-&amp;gt;serveruri);&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_PORT, $this-&amp;gt;serverport]);	&lt;br /&gt;
	curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_TIMEOUT, 5);	&lt;br /&gt;
	$result = curl_exec($ch);&lt;br /&gt;
	curl_close($ch); &lt;br /&gt;
	return xmlrpc_decode($result);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Commands ==&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
   &amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;  &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_create_region | admin_create_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Create a new region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name, region_master_first, &lt;br /&gt;
region_master_last, region_master_password, listen_ip, external_address&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_delete_region | admin_delete_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Delete a region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_region_query| admin_region_query]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Query the 'health' of a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;region_uuid or region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_shutdown | admin_shutdown]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Shut down the simulator&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;''No parameter needed''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_broadcast| admin_broadcast]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Send a general alert&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;message&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_restart| admin_restart]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Restart Region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_heightmap| admin_load_heightmap]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Load Height Map&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename, regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_create_user| admin_create_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Create a new user&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname, user_lastname, user_password, &lt;br /&gt;
start_region_x, start_region_y&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_exists_user| admin_exists_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Check whether a certain user account exists&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname, user_lastname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_update_user| admin_update_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Update the password/home of a user account&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname user_lastname user_password start_region_x start_region_y&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_xml| admin_load_xml]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Execute the Load XML command&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_save_xml| admin_save_xml]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Load a saved XML file into a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_oar| admin_load_oar]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Load a saved OAR file into a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_region_query| admin_region_query]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Query the 'health' of a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;region_uuid or region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
Thanks to DrScofield for the Python Script&lt;br /&gt;
Sources : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Sean Heavy</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin</id>
		<title>RemoteAdmin</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin"/>
				<updated>2008-10-11T15:43:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sean Heavy: /* RemoteAdmin Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background-color:#ffa0a0; padding:15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Caution ! The RemoteAdmin feature is unsecured at this time. For testing uses only.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to Setup the Remote Admin ==&lt;br /&gt;
&lt;br /&gt;
=== Setup OpenSim === &lt;br /&gt;
&lt;br /&gt;
First you should enable the remote admin interface to do so just add the following lines to your OpenSim.ini file:&lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 access_password = secret&lt;br /&gt;
&lt;br /&gt;
=== Example in Python ===&lt;br /&gt;
 # Author  : DrScofield &lt;br /&gt;
 # Source  : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
 # License : BSD License&lt;br /&gt;
 &lt;br /&gt;
 #!/usr/bin/python  &lt;br /&gt;
 import xmlrpclib  &lt;br /&gt;
   &lt;br /&gt;
 # XML-RPC URL (http_listener_port)  &lt;br /&gt;
 gridServerURL = ‘http://127.0.0.1:9000′  &lt;br /&gt;
    &lt;br /&gt;
 # instantiate server object  &lt;br /&gt;
 gridServer = xmlrpclib.Server(gridServerURL)  &lt;br /&gt;
   &lt;br /&gt;
 # invoke admin_alert: requires password and message  &lt;br /&gt;
 gridServer.admin_broadcast({’password’: ’secret’,   ‘message’: ‘the answer is 42′})&lt;br /&gt;
&lt;br /&gt;
=== RemoteAdmin executable for Windows ===&lt;br /&gt;
&lt;br /&gt;
The RemoteAdmin executable for Windows is a command line tool based on the RemoteAdmin PHP Class.&lt;br /&gt;
&lt;br /&gt;
Downloads and documentation on the [http://lab.newworldgrid.com/index.php/RemoteAdmin_Executable RemoteAdmin Executable webpage]&lt;br /&gt;
&lt;br /&gt;
=== Example in PHP ===&lt;br /&gt;
&lt;br /&gt;
This example needs the RemoteAdmin PHP Class file available [http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass here].&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Author  : Olish Newman&lt;br /&gt;
// Source  : http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass&lt;br /&gt;
// Licence : BSD License&lt;br /&gt;
&lt;br /&gt;
// Including the RemoteAdmin PHP class. It can be downloaded from the link above.&lt;br /&gt;
include('RemoteAdmin.php');&lt;br /&gt;
&lt;br /&gt;
// Instantiate the class with parameters identical to the Python example above&lt;br /&gt;
$myRemoteAdmin = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_broadcast&lt;br /&gt;
$parameters = array('message' =&amp;gt; 'the answer is 42');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_broadcast', $parameters);&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_shutdown (example for use without parameters)&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_create_user (multiple parameters)&lt;br /&gt;
$parameters = array('user_firstname' =&amp;gt; 'Ruth', 'user_lastname' =&amp;gt; 'OpenSim', 'user_password' =&amp;gt; 'MyPassword', 'start_region_x' =&amp;gt; '1000', 'start_region_y' =&amp;gt; '1000');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_create_user', $parameters);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: This script does not appear to work for create user because it tries to pass the start region x and y as a string when the RemoteAdmin needs a string.  The class needs to be edited to pass it as a number or edit the remoteadmin source to convert the string to a unsigned int.&lt;br /&gt;
&lt;br /&gt;
Another example in PHP5, using CURL.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//This is the slightly modified RPC-class of the BSD-licensed WiXTD webportal&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RemotePC {&lt;br /&gt;
&lt;br /&gt;
	function __construct() {&lt;br /&gt;
        $this-&amp;gt;serveruri = &amp;quot;http://myhost&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;serverport =&amp;quot;9000&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;password =&amp;quot;foobar&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function call($command,$parameters) {&lt;br /&gt;
        $parameters['password'] = $this-&amp;gt;password;&lt;br /&gt;
	$request = xmlrpc_encode_request($command, $parameters);&lt;br /&gt;
	$ch = curl_init();&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_URL, $this-&amp;gt;serveruri);&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_PORT, $this-&amp;gt;serverport]);	&lt;br /&gt;
	curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_TIMEOUT, 5);	&lt;br /&gt;
	$result = curl_exec($ch);&lt;br /&gt;
	curl_close($ch); &lt;br /&gt;
	return xmlrpc_decode($result);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Commands ==&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
   &amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;  &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_create_region | admin_create_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Create a new region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name, region_master_first, &lt;br /&gt;
region_master_last, region_master_password, listen_ip, external_address&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_delete_region | admin_delete_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Delete a region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_region_query| admin_region_query]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Query the 'health' of a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;region_uuid or region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_shutdown | admin_shutdown]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Shut down the simulator&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;''No parameter needed''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_broadcast| admin_broadcast]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Send a general alert&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;message&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_restart| admin_restart]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Restart Region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_heightmap| admin_load_heightmap]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Load Height Map&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename, regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_create_user| admin_create_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Create a new user&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname, user_lastname, user_password, &lt;br /&gt;
start_region_x, start_region_y&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_exists_user| admin_exists_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Check whether a certain user account exists&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname, user_lastname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_update_user| admin_update_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Update the password/home of a user account&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname user_lastname user_password start_region_x start_region_y&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_xml| admin_load_xml]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Execute the Load XML command&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_save_xml| admin_save_xml]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Load a saved XML file into a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_oar| admin_load_oar]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Load a saved OAR file into a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename region_uuid (or region_name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_region_query| admin_region_query]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Query the 'health' of a region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;region_uuid or region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
Thanks to DrScofield for the Python Script&lt;br /&gt;
Sources : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Sean Heavy</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin</id>
		<title>RemoteAdmin</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin"/>
				<updated>2008-10-11T15:24:11Z</updated>
		
		<summary type="html">&lt;p&gt;Sean Heavy: /* RemoteAdmin Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background-color:#ffa0a0; padding:15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Caution ! The RemoteAdmin feature is unsecured at this time. For testing uses only.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to Setup the Remote Admin ==&lt;br /&gt;
&lt;br /&gt;
=== Setup OpenSim === &lt;br /&gt;
&lt;br /&gt;
First you should enable the remote admin interface to do so just add the following lines to your OpenSim.ini file:&lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 access_password = secret&lt;br /&gt;
&lt;br /&gt;
=== Example in Python ===&lt;br /&gt;
 # Author  : DrScofield &lt;br /&gt;
 # Source  : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
 # License : BSD License&lt;br /&gt;
 &lt;br /&gt;
 #!/usr/bin/python  &lt;br /&gt;
 import xmlrpclib  &lt;br /&gt;
   &lt;br /&gt;
 # XML-RPC URL (http_listener_port)  &lt;br /&gt;
 gridServerURL = ‘http://127.0.0.1:9000′  &lt;br /&gt;
    &lt;br /&gt;
 # instantiate server object  &lt;br /&gt;
 gridServer = xmlrpclib.Server(gridServerURL)  &lt;br /&gt;
   &lt;br /&gt;
 # invoke admin_alert: requires password and message  &lt;br /&gt;
 gridServer.admin_broadcast({’password’: ’secret’,   ‘message’: ‘the answer is 42′})&lt;br /&gt;
&lt;br /&gt;
=== RemoteAdmin executable for Windows ===&lt;br /&gt;
&lt;br /&gt;
The RemoteAdmin executable for Windows is a command line tool based on the RemoteAdmin PHP Class.&lt;br /&gt;
&lt;br /&gt;
Downloads and documentation on the [http://lab.newworldgrid.com/index.php/RemoteAdmin_Executable RemoteAdmin Executable webpage]&lt;br /&gt;
&lt;br /&gt;
=== Example in PHP ===&lt;br /&gt;
&lt;br /&gt;
This example needs the RemoteAdmin PHP Class file available [http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass here].&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Author  : Olish Newman&lt;br /&gt;
// Source  : http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass&lt;br /&gt;
// Licence : BSD License&lt;br /&gt;
&lt;br /&gt;
// Including the RemoteAdmin PHP class. It can be downloaded from the link above.&lt;br /&gt;
include('RemoteAdmin.php');&lt;br /&gt;
&lt;br /&gt;
// Instantiate the class with parameters identical to the Python example above&lt;br /&gt;
$myRemoteAdmin = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_broadcast&lt;br /&gt;
$parameters = array('message' =&amp;gt; 'the answer is 42');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_broadcast', $parameters);&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_shutdown (example for use without parameters)&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
&lt;br /&gt;
// Invoke admin_create_user (multiple parameters)&lt;br /&gt;
$parameters = array('user_firstname' =&amp;gt; 'Ruth', 'user_lastname' =&amp;gt; 'OpenSim', 'user_password' =&amp;gt; 'MyPassword', 'start_region_x' =&amp;gt; '1000', 'start_region_y' =&amp;gt; '1000');&lt;br /&gt;
$myRemoteAdmin-&amp;gt;SendCommand('admin_create_user', $parameters);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: This script does not appear to work for create user because it tries to pass the start region x and y as a string when the RemoteAdmin needs a string.  The class needs to be edited to pass it as a number or edit the remoteadmin source to convert the string to a unsigned int.&lt;br /&gt;
&lt;br /&gt;
Another example in PHP5, using CURL.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//This is the slightly modified RPC-class of the BSD-licensed WiXTD webportal&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RemotePC {&lt;br /&gt;
&lt;br /&gt;
	function __construct() {&lt;br /&gt;
        $this-&amp;gt;serveruri = &amp;quot;http://myhost&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;serverport =&amp;quot;9000&amp;quot;;&lt;br /&gt;
        $this-&amp;gt;password =&amp;quot;foobar&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function call($command,$parameters) {&lt;br /&gt;
        $parameters['password'] = $this-&amp;gt;password;&lt;br /&gt;
	$request = xmlrpc_encode_request($command, $parameters);&lt;br /&gt;
	$ch = curl_init();&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_URL, $this-&amp;gt;serveruri);&lt;br /&gt;
	curl_setopt( $ch, CURLOPT_PORT, $this-&amp;gt;serverport]);	&lt;br /&gt;
	curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request);&lt;br /&gt;
	curl_setopt ( $ch, CURLOPT_TIMEOUT, 5);	&lt;br /&gt;
	$result = curl_exec($ch);&lt;br /&gt;
	curl_close($ch); &lt;br /&gt;
	return xmlrpc_decode($result);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Commands ==&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
   &amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;  &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_create_region | admin_create_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Create a new region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name, region_master_first, &lt;br /&gt;
region_master_last, region_master_password, listen_ip, external_address&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;[[remoteadmin:admin_delete_region | admin_delete_region]]&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Delete a region&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;region_name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_shutdown | admin_shutdown]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Shut down the simulator&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;''No parameter needed''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_broadcast| admin_broadcast]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Send a general alert&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;message&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_restart| admin_restart]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Restart Region&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_heightmap| admin_load_heightmap]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Load Height Map...&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename, regionid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_create_user| admin_create_user]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
	&amp;lt;td&amp;gt;Create a new user&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;user_firstname, user_lastname, user_password, &lt;br /&gt;
start_region_x, start_region_y&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;[[remoteadmin:admin_load_xml| admin_load_xml]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;Execute the Load XML command&amp;lt;/td&amp;gt;	&lt;br /&gt;
        &amp;lt;td&amp;gt;filename&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
Thanks to DrScofield for the Python Script&lt;br /&gt;
Sources : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Sean Heavy</name></author>	</entry>

	</feed>