# this is a collection of scripts that assist in managing an opensim server.
# it uses the "screen" utility to manage opensimulator instances.
-source "$FEISTY_MEOW_SCRIPTS/core/functions.sh"
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
# set up some parameters that we believe (or have been told) are beneficial.
-export MONO_THREADS_PER_CPU=408
+export MONO_THREADS_PER_CPU=1208
# we run the processes with a little cpu de-prioritization. we do not want
# them taking over completely if there's a runaway mono tornado.
# this is used as a process startup snooze, to avoid running a dependent
# process before the dependency has really started.
-export SNOOZE_TIME=7
+export SNOOZE_TIME=6
# lock the limit in for threads, so we don't have any getting out of control.
# also make sure we've provided enough space for each thread.
-ulimit -s 262144
+ulimit -s 512144
# use more recent versions of mono for opensim if they're available.
if [ -d /opt/mono-2.10/bin ]; then
{
screen_name="$1"; shift
app_name="$1"; shift
- echo "$(date_stringer): starting $screen_name now..."
- screen -L -S "$screen_name" -d -m nice -n $NICENESS_LEVEL mono "$app_name"
-##why? --debug
-#-console=basic
- echo "$(date_stringer): $screen_name started."
- sleep $SNOOZE_TIME
+ echo "$(date_stringer ' '): starting $screen_name now..."
+#hmmm: version check for if we're using old screen? this -L change was a mistake though for the screen project owners on ubuntu.
+local boguslog=$HOME/screen_junk_$(date_stringer).log
+#maybe they unbroke it in 17.10? yes, but it requires NO space now. *&@#*&@#
+#hmmm: bring back old version but check for ubuntu 17.04 vs 17.10 now.
+#actually they made it a new parm. arghhh!
+ screen -L $boguslog -S "$screen_name" -d -m nice -n $NICENESS_LEVEL mono "$app_name"
+
+ echo "$(date_stringer ' '): $screen_name started."
+ # only sleep if we are not at the last process that gets started.
+ if [ "$app_name" != "OpenSim.exe" ]; then
+ sleep $SNOOZE_TIME
+ fi
}
# finds the opensim process specified or returns a blank string in the
{
screen_name="$1"; shift
process_name="$1"; shift
- echo "$(date_stringer): stopping $screen_name now..."
+ echo "$(date_stringer ' '): stopping $screen_name now..."
screen -r -s "$screen_name" -X quit
# we don't want to shut any other servers down until this process is really gone.
find_opensim_process $process_name
if [ ! -z "$OS_PROC_ID" ]; then
- echo "$(date_stringer): waiting for $screen_name to really shut down..."
+ echo "$(date_stringer ' '): waiting for $screen_name to really shut down..."
sleep $SNOOZE_TIME
# check again after the snooze.
find_opensim_process $process_name
find_opensim_process $process_name
#break out on timed basis.
done
- echo "$(date_stringer): $screen_name really is shut down now."
+ echo "$(date_stringer ' '): $screen_name really is shut down now."
#do this as last ditch, above in timeout
find_opensim_process $process_name
fi
- echo "$(date_stringer): $screen_name stopped."
+ echo "$(date_stringer ' '): $screen_name stopped."
}