Salome HOME
Improve Linux scripts
[modules/shaper.git] / salome_run.sh
1 #!/bin/bash -x
2
3 a_dir=$(dirname $0)
4
5 cd ${a_dir}
6
7 source ${a_dir}/env.sh
8 source ${a_dir}/env_salome.sh
9
10 SALOME_ARGS="-r ./test.squish/shared/testdata/SalomeApp.xml"
11 if [ -f GDB ]; then
12   echo "No --gdb-session"
13   #SALOME_ARGS="${SALOME_ARGS} --gdb-session"
14 fi
15 SALOME_ARGS="${SALOME_ARGS} --ns-port-log=$(pwd)/.salomeport"
16
17 # kill processes of previous SALOME run
18 if [ -f .salomeport ]; then
19   SALOME_PORT=$(cat .salomeport)
20   ${KERNEL_ROOT_DIR}/bin/salome/killSalomeWithPort.py ${SALOME_PORT}
21   pkill -f "omniNames -start ${SALOME_PORT}"
22   rm .salomeport
23 fi 
24
25 ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py ${SALOME_ARGS} >log_runSalome 2>err_runSalome &
26 SALOME_PID=$!
27
28 ATTEMPT=0
29 while [[ -f .salomeport && ${ATTEMPT} -lt 5 ]]; do
30   sleep 5
31   SALOME_PORT=$(cat .salomeport)
32   ATTEMPT=$[${ATTEMPT}+1]
33 done 
34 if [ ${ATTEMPT} = 5 ]; then 
35   echo "Can not receive SALOME_PORT: file .salomeport does not exist..."
36   exit 1
37 fi
38
39 echo "SALOME_PORT ${SALOME_PORT}"
40
41 if [ -f GDB ]; then
42   SALOME_SESSION_SERVER_PID="$(salome_pid.py ${SALOME_PORT} 'SALOME_Session_Server' 2>/dev/null)"
43   ATTEMPT=0
44   while [[ "${SALOME_SESSION_SERVER_PID}" = "" && "${ATTEMPT}" -lt 5 ]]; do
45     sleep 5
46     SALOME_SESSION_SERVER_PID="$(salome_pid.py ${SALOME_PORT} 'SALOME_Session_Server' 2>/dev/null)"
47     ATTEMPT=$[${ATTEMPT}+1]
48   done
49   if [ ${ATTEMPT} = 5 ]; then 
50     echo "Can not receive SALOME_SESSION_SERVER_PID..."
51     exit 2
52   fi
53
54   echo "SALOME_SESSION_SERVER_PID ${SALOME_SESSION_SERVER_PID}"
55   echo "Connecting GDB to PID ${SALOME_SESSION_SERVER_PID}..."
56   gdb - ${SALOME_SESSION_SERVER_PID} >>log_gdb_salome 2>>err_gdb_salome
57 fi
58
59 wait ${SALOME_PID}
60
61 echo "Kill SALOME on port ${SALOME_PORT}"
62 ${KERNEL_ROOT_DIR}/bin/salome/killSalomeWithPort.py ${SALOME_PORT}
63 pkill -f "omniNames -start ${SALOME_PORT}"
64