Skip to content
Snippets Groups Projects
Commit 2c1e52f2 authored by Jeong Han Lee's avatar Jeong Han Lee
Browse files

ess local iocsh

parent 3d334ea0
No related branches found
No related tags found
No related merge requests found
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
declare -gr SC_SCRIPT="$(realpath "$0")" declare -gr SC_SCRIPT="$(realpath "$0")"
declare -gr SC_SCRIPTNAME=${0##*/} declare -gr SC_SCRIPTNAME=${0##*/}
declare -gr SC_TOP="$(dirname "$SC_SCRIPT")" declare -gr SC_TOP="$(dirname "$SC_SCRIPT")"
declare -g STARTUP=""
set -a set -a
. ${SC_TOP}/ess-env.conf . ${SC_TOP}/ess-env.conf
...@@ -13,6 +13,7 @@ set +a ...@@ -13,6 +13,7 @@ set +a
. ${SC_TOP}/iocsh_functions . ${SC_TOP}/iocsh_functions
case $1 in case $1 in
( -h | "-?" | -help | --help ) ( -h | "-?" | -help | --help )
help help
...@@ -46,16 +47,23 @@ fi ...@@ -46,16 +47,23 @@ fi
declare -g RUNNING_EPICS_BASE_VER=${EPICS_BASE##*/*-} declare -g RUNNING_EPICS_BASE_VER=${EPICS_BASE##*/*-}
declare -g RUNNING_REQUIRE_PATH=${EPICS_MODULES}/${REQUIRE}/${REQUIRE_VERSION}/R${RUNNING_EPICS_BASE_VER} declare -g RUNNING_REQUIRE_PATH=${EPICS_MODULES}/${REQUIRE}/${REQUIRE_VERSION}/R${RUNNING_EPICS_BASE_VER}
startup=/tmp/iocsh.startup.$$ # EPICS_BASE/bin should be in PATH
declare -g SOFTIOC_CMD="softIoc"
declare -g SOFTIOC_ARGS="-D ${EPICS_BASE}/dbd/softIoc.dbd"
IOC=$(hostname|tr -d '\r')
STARTUP=/tmp/${SC_SCRIPTNAME}_${IOC}_startup.$BASHPID
# clean up and kill the softIoc when killed by any signal
trap "kill -s SIGTERM 0; stty sane; echo; rm -f $startup; " EXIT trap "softIoc_end" EXIT SIGTERM
{ {
echo "# date=\"$(date)\"" echo "# date=\"$(date)\""
echo "# user=\"${USER:-$(whoami)}\"" echo "# user=\"${USER:-$(whoami)}\""
for var in PWD BASE EPICS_HOST_ARCH SHELLBOX EPICS_CA_ADDR_LIST EPICS_DRIVER_PATH for var in PWD EPICS_HOST_ARCH REQUIRE_PATH EPICS_CA_ADDR_LIST
do do
echo "# $var=\"${!var}\"" echo "# $var=\"${!var}\""
done done
...@@ -64,28 +72,27 @@ trap "kill -s SIGTERM 0; stty sane; echo; rm -f $startup; " EXIT ...@@ -64,28 +72,27 @@ trap "kill -s SIGTERM 0; stty sane; echo; rm -f $startup; " EXIT
LIBPREFIX=lib LIBPREFIX=lib
LIBPOSTFIX=.so LIBPOSTFIX=.so
REQUIRE_LIB=${RUNNING_REQUIRE_PATH}/lib/$EPICS_HOST_ARCH/$LIBPREFIX$REQUIRE$LIBPOSTFIX REQUIRE_LIB=${RUNNING_REQUIRE_PATH}/lib/${EPICS_HOST_ARCH}/${LIBPREFIX}${REQUIRE}${LIBPOSTFIX}
REQUIRE_DBD=${REQUIRE_LIB%/lib/*}/dbd/$REQUIRE.dbd REQUIRE_DBD=${REQUIRE_LIB%/lib/*}/dbd/${REQUIRE}.dbd
EXE=softIoc
ARGS="-D $EPICS_BASE/dbd/softIoc.dbd"
LDCMD="dlload" LDCMD="dlload"
# echo "$LDCMD $REQUIRE_LIB" echo "$LDCMD $REQUIRE_LIB"
# echo "dbLoadDatabase $REQUIRE_DBD" echo "dbLoadDatabase $REQUIRE_DBD"
# echo "${REQUIRE%-*}_registerRecordDeviceDriver" echo "${REQUIRE%-*}_registerRecordDeviceDriver"
# loadFiles "$@" loadFiles "$@"
if [ "$init" != NO ] if [ "$init" != NO ]
then then
echo "iocInit" echo "iocInit"
fi fi
} > $startup } > ${STARTUP}
echo $EXE $ARGS $startup
command='${SOFTIOC_CMD} ${SOFTIOC_ARGS} "${STARTUP}"'
ulimit -c unlimited ulimit -c unlimited
eval "$LOADER $LOADERARGS $EXE" $ARGS "$startup" 2>&1 eval "${command}" 2>&1
...@@ -233,4 +233,22 @@ function select_epics_base() { ...@@ -233,4 +233,22 @@ function select_epics_base() {
} }
# Ctrl+c : OK
# exit : OK
# kill softioc process : OK
# kill main precess : Enter twice in terminal,
# close softIoc, but STATUP file is remained.
#
function softIoc_end() {
local pids=$(jobs -pr);
[ -n "$pids" ] && kill $pids;
stty sane;
printf "\n\n";
rm -f $STARTUP;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment