1
1
openmpi/orte/tools/orte-bootproxy/orte-bootproxy.sh
Ralph Castain dca0246e57 Add some logic so we don't try to kill procs that are already dead, check for file existence before trying to remove, etc.
Just eliminates some harmless (but disturbing to users) warning messages

This commit was SVN r21135.
2009-05-01 14:00:59 +00:00

90 строки
2.2 KiB
Bash
Исполняемый файл

#!/bin/bash
#
# Copyright (c) 2009 Los Alamos National Security, LLC. All rights reserved
#
if (( $# < 1 )) ; then
echo "orte-bootproxy.sh: for OMPI internal use only"
exit 1
fi
# take the first arg
var=$1
# if the var is CLEANUP, then we are in cleanup mode
if [ "${var}" == "CLEANUP" ]; then
shift 1
var=$1
if [ -n "${var}" ] && [ "${var}" == "APPS" ]; then
# kill specified apps
shift 1
var=$1
# get the process table
psout=`ps`
# cycle through and look for the specified apps
while [ -n "${var}" ] && [ "${var}" != "FILES" ]; do
testvar=`echo "${psout}" | grep "${var}"`
if [ -n "${testvar}" ]; then
# echo "killall" "${var}"
killall -TERM "${var}"
fi
shift 1
var=$1
done
if [ -n "${var}" ]; then
shift 1
var=$1
# remove specified files
while [ -n "${var}" ]; do
if [ -e "${var}" ]; then
# echo "rm" "${var}"
rm -f "${var}"
fi
shift 1
var=$1
done
fi
elif [ "${var}" = "FILES" ]; then
# remove specified files
shift 1
var=$1
while [ -n "${var}" ]; do
if [ -e "${var}" ]; then
# echo "rm" "${var}"
rm -f "${var}"
fi
shift 1
var=$1
done
fi
# remove any session directories from this user
# sdir="${TMPDIR}""openmpi-sessions-""${USER}""@"`hostname`"_0"
sdir="/tmp/openmpi-sessions-""${USER}""@"`hostname`"_0"
if [ -e "${sdir}" ]; then
# echo "rm" "${sdir}"
rm -rf "${sdir}"
fi
exit 0
fi
# push all MCA params to the environment
while [ "${var:0:5}" = "OMPI_" ]; do
if [ "${var:5:6}" = "PREFIX" ]; then
export LD_LIBRARY_PATH="${var:12}"/lib:$LD_LIBRARY_PATH
export PATH="${var:12}"/bin:$PATH
elif [ "${var:5:4}" = "WDIR" ]; then
cd "${var:10}"
else
export $var
fi
shift 1
var=$1
done
# extract the application to be executed
app=$1
shift 1
#exec the app with the remaining args
exec "$app" "$@"