diff --git a/cave/build/static/linux/cave/cave.sh b/cave/build/static/linux/cave/cave.sh index f6b124fd44..b6ec361d8d 100644 --- a/cave/build/static/linux/cave/cave.sh +++ b/cave/build/static/linux/cave/cave.sh @@ -1,263 +1,2 @@ #!/bin/bash -# CAVE startup script -# Note: CAVE will not run as 'root' - -# This software was developed and / or modified by Raytheon Company, -# pursuant to Contract DG133W-05-CQ-1067 with the US Government. -# -# U.S. EXPORT CONTROLLED TECHNICAL DATA -# This software product contains export-restricted data whose -# export/transfer/disclosure is restricted by U.S. law. Dissemination -# to non-U.S. persons whether in the United States or abroad requires -# an export license or other authorization. -# -# Contractor Name: Raytheon Company -# Contractor Address: 6825 Pine Street, Suite 340 -# Mail Stop B8 -# Omaha, NE 68106 -# 402.291.0100 -# -# See the AWIPS II Master Rights File ("Master Rights File.pdf") for -# further licensing information. -# -# -# SOFTWARE HISTORY -# Date Ticket# Engineer Description -# ------------ ---------- ----------- -------------------------- -# Dec 05, 2013 #2593 rjpeter Added check for number of running -# cave sessions. -# Dec 05, 2013 #2590 dgilling Modified so gfeclient.sh can be wrapped -# around this script. -# Jan 24, 2014 #2739 bsteffen Log exit status -# Jan 30, 2014 #2593 bclement warns based on memory usage, fixed for INI files with spaces -# -# - - -user=`/usr/bin/whoami` -if [ ${user} == 'root' ];then - echo "WARNING: CAVE cannot be run as user '${user}'!" - echo " change to another user and run again." - exit 1 -fi - -# Since, we no longer need to worry about re-location ... -CAVE_INSTALL="/awips2/cave" -JAVA_INSTALL="/awips2/java" -PYTHON_INSTALL="/awips2/python" -export AWIPS_INSTALL_DIR="${CAVE_INSTALL}" - -MAX_MEM_PROPORTION="0.9" - -source ${CAVE_INSTALL}/caveUtil.sh -RC=$? -if [ ${RC} -ne 0 ]; then - echo "ERROR: unable to find and/or access ${CAVE_INSTALL}/caveUtil.sh." - exit 1 -fi - -# Run monitorThreads? -runMonitorThreads=false - -# copy the viz shutdown utility if necessary. -copyVizShutdownUtilIfNecessary - -# delete any old disk caches in the background -deleteOldCaveDiskCaches & - -# Enable core dumps -ulimit -c unlimited - -export LD_LIBRARY_PATH=${JAVA_INSTALL}/lib:${PYTHON_INSTALL}/lib:$LD_LIBRARY_PATH -export LD_PRELOAD=libpython.so -if [[ -z "$CALLED_EXTEND_LIB_PATH" ]]; then - extendLibraryPath -fi -export PATH=${JAVA_INSTALL}/bin:${PYTHON_INSTALL}/bin:$PATH -export JAVA_HOME="${JAVA_INSTALL}/jre" - -# The user can update this field if they choose to do so. -export HYDRO_APPS_DIR="/awips2/edex/data/share/hydroapps" - -export EDEX_HOME=/awips2/edex -export LOCALIZATION_ROOT=~/caveData/common -export PGSQL_DRIVER_DIR=`ls -1d /awips2/cave/plugins/org.postgres_*` -if [ $? -ne 0 ]; then - echo "FATAL: Unable to locate the PostgreSQL JDBC Driver." - exit 1 -fi -export apps_dir=${HYDRO_APPS_DIR} - -TESTCHECK="$TMCP_HOME/bin/getTestMode" -if [ -x ${TESTCHECK} ]; then - echo "Calling getTestMode()" - ${TESTCHECK} - status=${?} - if [ $status -eq 11 ]; then - MODE="TEST" - SWITCHES="${SWITCHES} -mode TEST " - elif [ $status -eq 12 ];then - MODE="PRACTICE" - SWITCHES="${SWITCHES} -mode PRACTICE " - elif [ $status -eq 15 ];then - MODE="OPERATIONAL" - SWITCHES="${SWITCHES} -mode OPERATIONAL" - else - MODE="OPERATIONAL (no response)" - SWITCHES="${SWITCHES} " - fi - echo "getTestMode() returned ${MODE}" -else - MODE="UNKNOWN" - echo "getTestMode() not found - going to use defaults" -fi - -export TEXTWS=`hostname | sed -e 's/lx/xt/g'` - -hostName=`hostname -s` - -# check number of running caves -if [[ -z $IGNORE_NUM_CAVES ]]; then - # get total memory on system in bytes - mem=( `free -b | grep "Mem:"` ) - mem=${mem[1]} - # get max amount of system memory used before we warn - memThreshold=$(echo "$mem * $MAX_MEM_PROPORTION" | bc) - # remove decimal - printf -v memThreshold "%.0f" "$memThreshold" - # get launcher.ini argument determined by user arguments - lookupINI "$@" - launcherRegex='--launcher.ini\s(.+\.ini)' - # default to cave.ini - targetIni="/awips2/cave/cave.ini" - #targetIni="/awips2/cave/NCP.ini" - if [[ $CAVE_INI_ARG =~ $launcherRegex ]] - then - targetIni="${BASH_REMATCH[1]}" - fi - #targetIni="/awips2/cave/NCP.ini" - # read max memory that could be used by this instance - memOfLaunchingCave=$(readMemFromIni "$targetIni") - # read total max memory of caves already running - getTotalMemOfRunningCaves - # add them together - _totalAfterStart=$(($memOfLaunchingCave + $_totalRunningMem)) - if [[ "$_totalAfterStart" -ge "$memThreshold" ]]; then - # convert to megs for display - memOfLaunchingCave=$(($memOfLaunchingCave / $BYTES_IN_MB)) - _totalRunningMem=$(($_totalRunningMem / $BYTES_IN_MB)) - getPidsOfMyRunningCaves - memMsg="$_numPids CAVE applications already running with a combined max memory of ${_totalRunningMem}MB. " - memMsg+="The requested application has a max memory requirement of ${memOfLaunchingCave}MB. " - memMsg+="Starting may impact system performance and stability.\n\nProceed?" - zenity --question --title "Low Available Memory for Application" --text "$memMsg" - cancel="$?" - - if [[ "$cancel" == "1" ]]; then - exit - fi - fi -fi - -#check for gtk-2.0 value -gtkResource=.gtkrc-2.0 -includeLine="include \"$HOME/.gtkrc.mine\"" -mineFile=.gtkrc.mine -altButtonLine="gtk-alternative-button-order=1" -if [ -f $HOME/$gtkResource ]; then - if [ -w $HOME/$gtkResource ]; then - var=`grep "gtkrc.mine" $HOME/$gtkResource` - if [ '' == "$var" ]; then - echo $includeLine >> $HOME/$gtkResource - fi - fi -else - touch $HOME/$gtkResource - echo $includeLine >> $HOME/$gtkResource -fi - -if [ -f $HOME/$mineFile ]; then - if [ -w $HOME/$mineFile ]; then - var=`grep "alternative-button-order" $HOME/$mineFile` - if [ '' == "$var" ]; then - echo $altButtonLine >> $HOME/$mineFile - fi - fi -else - touch $HOME/$mineFile - echo $altButtonLine >> $HOME/$mineFile -fi - -if [[ -z "$PROGRAM_NAME" ]] -then - PROGRAM_NAME="cave" -fi - -BASE_LOGDIR=$HOME/caveData/logs/consoleLogs -LOGDIR=$BASE_LOGDIR/$hostName/ - - -# make sure directory exists -if [ ! -d $LOGDIR ]; then - mkdir -p $LOGDIR -fi - -# delete any old disk caches in the background -deleteOldCaveLogs & - -curTime=`date +%Y%m%d_%H%M%S` - -# At this point fork so that log files can be set up with the process pid and -# this process can log the exit status of cave. -( - export pid=`/bin/bash -c 'echo $PPID'` - - LOGFILE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_console.log" - export LOGFILE_CAVE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_alertviz.log" - export LOGFILE_PERFORMANCE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_perf.log" - - # can we write to log directory - if [ -w ${LOGDIR} ]; then - touch ${LOGFILE} - fi - - # remove "-noredirect" flag from command-line if set so it doesn't confuse any - # commands we call later. - redirect="true" - USER_ARGS=() - while [[ $1 ]] - do - if [[ "$1" == "-noredirect" ]] - then - redirect="false" - else - USER_ARGS+=("$1") - fi - shift - done - - # Special instructions for the 64-bit jvm. - ARCH_ARGS="" - if [ -f /awips2/java/jre/lib/amd64/server/libjvm.so ]; then - ARCH_ARGS="-vm /awips2/java/jre/lib/amd64/server/libjvm.so" - fi - - lookupINI "${USER_ARGS[@]}" - - if [[ "${runMonitorThreads}" == "true" ]] ; then - # nohup to allow tar process to continue after user has logged out - nohup ${CAVE_INSTALL}/monitorThreads.sh $pid >> /dev/null 2>&1 & - fi - - if [[ "${redirect}" == "true" ]] ; then - exec ${CAVE_INSTALL}/cave ${ARCH_ARGS} ${SWITCHES} "${CAVE_INI_ARG}" "${USER_ARGS[@]}" > ${LOGFILE} 2>&1 - else - exec ${CAVE_INSTALL}/cave ${ARCH_ARGS} ${SWITCHES} "${CAVE_INI_ARG}" "${USER_ARGS[@]}" 2>&1 | tee ${LOGFILE} - fi -) & - -pid=$! -LOGFILE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_console.log" -logExitStatus $pid $LOGFILE - - +/awips2/cave/run.sh -alertviz -perspective NCP \ No newline at end of file diff --git a/cave/build/static/linux/cave/run.sh b/cave/build/static/linux/cave/run.sh new file mode 100644 index 0000000000..d950bfaad6 --- /dev/null +++ b/cave/build/static/linux/cave/run.sh @@ -0,0 +1,240 @@ +#!/bin/bash +# CAVE startup script +# Note: CAVE will not run as 'root' + +# This software was developed and / or modified by Raytheon Company, +# pursuant to Contract DG133W-05-CQ-1067 with the US Government. +# +# U.S. EXPORT CONTROLLED TECHNICAL DATA +# This software product contains export-restricted data whose +# export/transfer/disclosure is restricted by U.S. law. Dissemination +# to non-U.S. persons whether in the United States or abroad requires +# an export license or other authorization. +# +# Contractor Name: Raytheon Company +# Contractor Address: 6825 Pine Street, Suite 340 +# Mail Stop B8 +# Omaha, NE 68106 +# 402.291.0100 +# +# See the AWIPS II Master Rights File ("Master Rights File.pdf") for +# further licensing information. +# +# +# SOFTWARE HISTORY +# Date Ticket# Engineer Description +# ------------ ---------- ----------- -------------------------- +# Dec 05, 2013 #2593 rjpeter Added check for number of running +# cave sessions. +# Dec 05, 2013 #2590 dgilling Modified so gfeclient.sh can be wrapped +# around this script. +# Jan 24, 2014 #2739 bsteffen Log exit status +# Jan 30, 2014 #2593 bclement warns based on memory usage, fixed for INI files with spaces +# +# + + +user=`/usr/bin/whoami` +if [ ${user} == 'root' ];then + echo "WARNING: CAVE cannot be run as user '${user}'!" + echo " change to another user and run again." + exit 1 +fi + +# Since, we no longer need to worry about re-location ... +CAVE_INSTALL="/awips2/cave" +JAVA_INSTALL="/awips2/java" +PYTHON_INSTALL="/awips2/python" +export AWIPS_INSTALL_DIR="${CAVE_INSTALL}" + +MAX_MEM_PROPORTION="0.9" + +source ${CAVE_INSTALL}/caveUtil.sh +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: unable to find and/or access ${CAVE_INSTALL}/caveUtil.sh." + exit 1 +fi + +# Run monitorThreads? +runMonitorThreads=false + +# copy the viz shutdown utility if necessary. +copyVizShutdownUtilIfNecessary + +# delete any old disk caches in the background +deleteOldCaveDiskCaches & + +# Enable core dumps +ulimit -c unlimited + +export LD_LIBRARY_PATH=${JAVA_INSTALL}/lib:${PYTHON_INSTALL}/lib:$LD_LIBRARY_PATH +export LD_PRELOAD=libpython.so +if [[ -z "$CALLED_EXTEND_LIB_PATH" ]]; then + extendLibraryPath +fi +export PATH=${JAVA_INSTALL}/bin:${PYTHON_INSTALL}/bin:$PATH +export JAVA_HOME="${JAVA_INSTALL}/jre" + +# The user can update this field if they choose to do so. +export HYDRO_APPS_DIR="/awips2/edex/data/share/hydroapps" + +export EDEX_HOME=/awips2/edex +export LOCALIZATION_ROOT=~/caveData/common +export PGSQL_DRIVER_DIR=`ls -1d /awips2/cave/plugins/org.postgres_*` +if [ $? -ne 0 ]; then + echo "FATAL: Unable to locate the PostgreSQL JDBC Driver." + exit 1 +fi +export apps_dir=${HYDRO_APPS_DIR} + +MODE="OPERATIONAL (no response)" +SWITCHES="${SWITCHES} " + +export TEXTWS=`hostname | sed -e 's/lx/xt/g'` + +hostName=`hostname -s` + +# check number of running caves +if [[ -z $IGNORE_NUM_CAVES ]]; then + # get total memory on system in bytes + mem=( `free -b | grep "Mem:"` ) + mem=${mem[1]} + # get max amount of system memory used before we warn + memThreshold=$(echo "$mem * $MAX_MEM_PROPORTION" | bc) + # remove decimal + printf -v memThreshold "%.0f" "$memThreshold" + # get launcher.ini argument determined by user arguments + lookupINI "$@" + launcherRegex='--launcher.ini\s(.+\.ini)' + # default to cave.ini + targetIni="/awips2/cave/cave.ini" + if [[ $CAVE_INI_ARG =~ $launcherRegex ]] + then + targetIni="${BASH_REMATCH[1]}" + fi + # read max memory that could be used by this instance + memOfLaunchingCave=$(readMemFromIni "$targetIni") + # read total max memory of caves already running + getTotalMemOfRunningCaves + # add them together + _totalAfterStart=$(($memOfLaunchingCave + $_totalRunningMem)) + if [[ "$_totalAfterStart" -ge "$memThreshold" ]]; then + # convert to megs for display + memOfLaunchingCave=$(($memOfLaunchingCave / $BYTES_IN_MB)) + _totalRunningMem=$(($_totalRunningMem / $BYTES_IN_MB)) + getPidsOfMyRunningCaves + memMsg="$_numPids CAVE applications already running with a combined max memory of ${_totalRunningMem}MB. " + memMsg+="The requested application has a max memory requirement of ${memOfLaunchingCave}MB. " + memMsg+="Starting may impact system performance and stability.\n\nProceed?" + zenity --question --title "Low Available Memory for Application" --text "$memMsg" + cancel="$?" + + if [[ "$cancel" == "1" ]]; then + exit + fi + fi +fi + +#check for gtk-2.0 value +gtkResource=.gtkrc-2.0 +includeLine="include \"$HOME/.gtkrc.mine\"" +mineFile=.gtkrc.mine +altButtonLine="gtk-alternative-button-order=1" +if [ -f $HOME/$gtkResource ]; then + if [ -w $HOME/$gtkResource ]; then + var=`grep "gtkrc.mine" $HOME/$gtkResource` + if [ '' == "$var" ]; then + echo $includeLine >> $HOME/$gtkResource + fi + fi +else + touch $HOME/$gtkResource + echo $includeLine >> $HOME/$gtkResource +fi + +if [ -f $HOME/$mineFile ]; then + if [ -w $HOME/$mineFile ]; then + var=`grep "alternative-button-order" $HOME/$mineFile` + if [ '' == "$var" ]; then + echo $altButtonLine >> $HOME/$mineFile + fi + fi +else + touch $HOME/$mineFile + echo $altButtonLine >> $HOME/$mineFile +fi + +if [[ -z "$PROGRAM_NAME" ]] +then + PROGRAM_NAME="cave" +fi + +BASE_LOGDIR=$HOME/caveData/logs/consoleLogs +LOGDIR=$BASE_LOGDIR/$hostName/ + + +# make sure directory exists +if [ ! -d $LOGDIR ]; then + mkdir -p $LOGDIR +fi + +# delete any old disk caches in the background +deleteOldCaveLogs & + +curTime=`date +%Y%m%d_%H%M%S` + +# At this point fork so that log files can be set up with the process pid and +# this process can log the exit status of cave. +( + export pid=`/bin/bash -c 'echo $PPID'` + + LOGFILE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_console.log" + export LOGFILE_CAVE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_alertviz.log" + export LOGFILE_PERFORMANCE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_perf.log" + + # can we write to log directory + if [ -w ${LOGDIR} ]; then + touch ${LOGFILE} + fi + + # remove "-noredirect" flag from command-line if set so it doesn't confuse any + # commands we call later. + redirect="true" + USER_ARGS=() + while [[ $1 ]] + do + if [[ "$1" == "-noredirect" ]] + then + redirect="false" + else + USER_ARGS+=("$1") + fi + shift + done + + # Special instructions for the 64-bit jvm. + ARCH_ARGS="" + if [ -f /awips2/java/jre/lib/amd64/server/libjvm.so ]; then + ARCH_ARGS="-vm /awips2/java/jre/lib/amd64/server/libjvm.so" + fi + + lookupINI "${USER_ARGS[@]}" + + if [[ "${runMonitorThreads}" == "true" ]] ; then + # nohup to allow tar process to continue after user has logged out + nohup ${CAVE_INSTALL}/monitorThreads.sh $pid >> /dev/null 2>&1 & + fi + + if [[ "${redirect}" == "true" ]] ; then + exec ${CAVE_INSTALL}/cave ${ARCH_ARGS} ${SWITCHES} "${CAVE_INI_ARG}" "${USER_ARGS[@]}" > ${LOGFILE} 2>&1 + else + exec ${CAVE_INSTALL}/cave ${ARCH_ARGS} ${SWITCHES} "${CAVE_INI_ARG}" "${USER_ARGS[@]}" 2>&1 | tee ${LOGFILE} + fi +) & + +pid=$! +LOGFILE="${LOGDIR}/${PROGRAM_NAME}_${curTime}_pid_${pid}_console.log" +logExitStatus $pid $LOGFILE + + diff --git a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NAM-11km-standard.xml b/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NAM-11km-standard.xml deleted file mode 100644 index 4efaed7a05..0000000000 --- a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NAM-11km-standard.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - AK-NAM-11km - standard - 500mb_hght - diff --git a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NAM-standard.xml b/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NAM-standard.xml deleted file mode 100644 index 135b9c5fa8..0000000000 --- a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NAM-standard.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - AK-NAM - standard - 500mb_hght - diff --git a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NamDNG5-standard.xml b/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NamDNG5-standard.xml deleted file mode 100644 index 549194a091..0000000000 --- a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-NamDNG5-standard.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - AK-NamDNG5 - standard - surface_temperature - diff --git a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-RTMA-standard.xml b/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-RTMA-standard.xml deleted file mode 100644 index f7392239bd..0000000000 --- a/ncep/gov.noaa.nws.ncep.viz.localization/localization/ncep/AttributeSetGroups/ModelFcstGridContours/AK-RTMA-standard.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - AK-RTMA - standard - surface_pressure,surface_temperature,surface_temperature_as_points - diff --git a/rpms/awips2.upc/Installer.edex-upc/edex b/rpms/awips2.upc/Installer.edex-upc/edex index e348f6b321..f42fb20e31 100755 --- a/rpms/awips2.upc/Installer.edex-upc/edex +++ b/rpms/awips2.upc/Installer.edex-upc/edex @@ -307,32 +307,6 @@ edex_start() { # start all edex services su -c "service httpd-pypies start" su -c "service qpidd start" su -c "service edex_camel start" - echo "**************************************************" - echo "* Waiting for EDEX ESB to become operational *" - echo "* - This may take a few minutes *" - echo "* - Do not start CAVE until this is complete *" - echo "**************************************************" - echo -n "..." - prog=0 - num=`tail -100 ${LOG_PATH}edex-ingest-${YMD}.log | grep "EDEX ESB is now operational" | wc -l` - while [ $num -lt 1 ] - do - sleep 3 - num=`tail -100 ${LOG_PATH}edex-ingest-${YMD}.log | grep "EDEX ESB is now operational" | wc -l` - if [[ $prog -eq 46 ]]; then - prog=0 - else - echo -n "." - fi - let prog++ - if [[ $num -gt 0 ]]; then - echo "" - echo "**************************************************" - echo "* EDEX ESB is now operational *" - echo "* You may now start alertviz and CAVE *" - echo "**************************************************" - fi - done } edex_stop() { # stop all edex services