Ogltree Install Instructions

Instructions: 1.	Install expect and sudo packages apt-get install expect apt-get install sudo 2.	Create a special user account with a password and using the bash shell. NOTE: replace all occurrances (below) of  and  with the name of your special user and it's password. 3.	make a '/root/scripts' directory and install the following scripts in it: 3.a	restartOpenSim 3.b	expect.in	3.c	LOS 3.d	KOS 4.	create the '/home/OSimLogs' directory to contain the OpenSim logs. 5.	set up the crontab for root using the entry found below. Addendum: I am working on using monit to monitor the OpenSim and automatically run /root/scripts/KOS whenever required. At the moment I have to login to the server as root and run 'KOS' manually when OpenSim hangs up. Explanation: The cronjob makes sure that restartOpenSim is running. It attempts to start it every 10 minutes. The script itself goes to great lengths to ensure that only one instance of it actually runs. If it ever dies you will have to remove the file '/root/scripts/ROS.running' to allow a fresh instance of it to run. the restartOpenSim script will (if needed) start expect running the expect.in script. expect will spawn a login shell and login to the special user account. This will cause the execution of sudo to run LOS which in turn will launch OpenSim with logging to '/home/OSimLogs' directory. The log files will be date and time stamped. restartOpenSim script --
 * 1) !/bin/bash

if [ -f "/root/scripts/ROS.running" ] then exit 0 fi RES=`ps -ef |grep -i restartOpenSim |grep -v grep |grep bash |wc -l |awk '{print \$1}'` if [ "$RES" -gt "3" ] then echo "RES=$RES aborting" exit 0 fi echo 1 >/root/scripts/ROS.running while [ 1 ] do RES1=`ps -ef |grep "mono OpenSim.exe" |grep -v grep` if [ "$RES1" = "" ] then RES2=`who |grep ` if [ "$RES2" = "" ] then RES3=`ps -ef |grep  |grep -v grep` if [ "$RES3" = "" ] then echo "running LOS" expect -f /root/scripts/expect.in				sleep 5 fi fi fi sleep 10 done expect.in script -- spawn login expect Login: send \r expect "by applicable law." wait 255 send exit wait 500 LOS script -- RES=`tty` DT=`date +%Y%m%d_%H%M` echo "In LOS tty=$RES" >>/root/scripts/LOS.out cd /root/opensim/bin; mono OpenSim.exe > /home/OSimLogs/OSimLog.$DT KOS script --
 * 1) !/bin/sh
 * 2) LOS
 * 1) !/bin/bash

MON=`ps -ef |grep "mono OpenSim" |grep -v grep |awk '{print \$2}'` ULI=`ps -ef |grep  |grep -v grep |grep bash |awk '{print \$2}'` EXP=`ps -ef |grep expect |grep -v grep |awk '{print \$2}'` if [ "$MON" != "" ] then kill -9 $MON fi if [ "$ULI" != "" ] then kill -9 $ULI fi if [ "$EXP" != "" ] then kill -9 $EXP fi --- - Excerpt from 's .bashrc  -- RES=`tty` DT=`date` echo "${DT}: Simmer logged in with tty = $RES" >>/home/Simmer/loginlog sudo /root/scripts/LOS --- --- /etc/sudoers file
 * 1) /etc/sudoers
 * 2) This file MUST be edited with the 'visudo' command as root.
 * 3) See the man page for details on how to write a sudoers file.
 * 1) See the man page for details on how to write a sudoers file.
 * 1) See the man page for details on how to write a sudoers file.

Defaults       env_reset


 * 1) Host alias specification

User_Alias     OPENSIM=
 * 1) User alias specification

Cmnd_Alias     OSIM = /root/scripts/LOS
 * 1) Cmnd alias specification

root   ALL=(ALL) ALL OPENSIM        db4151109=NOPASSWD:OSIM
 * 1) User privilege specification

--- root's crontab entry  - 0,10,20,30,40,50 * * * * /root/scripts/restartOpenSim 2>>/root/scripts/restart.err >>/root/scripts/restart.out