export SUPERV_ROOT_DIR=/Salome2/SUPERV_install
export VISU_ROOT_DIR=/Salome2/VISU_install
-python killSalome.py
-python -i runSalome.py --gui --modules=GEOM,SMESH,VISU,SUPERV,MED --xterm --containers=cpp,python
+python -i runSalome.py --gui --modules=GEOM,SMESH,VISU,SUPERV,MED --xterm --containers=cpp,python --killall
#python -i runSalome.py --gui --modules=GEOM,SMESH,VISU,SUPERV,MED --logger --xterm
#python -i runSalome.py --modules=GEOM,SMESH,VISU,SUPERV,MED
#python -i runSalome.py --help
--xterm : les serveurs ouvrent une fenêtre xterm et les messages sont affichés dans cette fenêtre
--modules=module1,module2,... : où modulen est le nom d'un module Salome à charger dans le catalogue
--containers=cpp,python,superv: lancement des containers cpp, python et de supervision
+--killall : arrêt des serveurs de salome
La variable d'environnement <modulen>_ROOT_DIR doit etre préalablement
positionnée (modulen doit etre en majuscule).
KERNEL_ROOT_DIR est obligatoire.
"""
+# -----------------------------------------------------------------------------
+#
+# Fonction d'arrêt de salome
+#
+
+def killSalome():
+ print "arret des serveurs SALOME"
+ for pid, cmd in process_id.items():
+ print "arret du process %s : %s"% (pid, cmd[0])
+ try:
+ os.kill(pid,signal.SIGKILL)
+ except:
+ print " ------------------ process %s : %s inexistant"% (pid, cmd[0])
+ print "arret du naming service"
+ os.system("killall -9 omniNames")
+
+# -----------------------------------------------------------------------------
+#
+# Fonction message
+#
+
def message(code, msg=''):
if msg: print msg
sys.exit(code)
import sys,os,string,glob,time,signal,pickle,getopt
init_time=os.times()
-opts, args=getopt.getopt(sys.argv[1:], 'hmglxc:', ['help','modules=','gui','logger','xterm','containers='])
+opts, args=getopt.getopt(sys.argv[1:], 'hmglxck:', ['help','modules=','gui','logger','xterm','containers=','killall'])
modules_root_dir={}
process_id={}
liste_modules={}
with_container_superv=1
else:
with_container_superv=0
-
+ elif o in ('-k', '--killall'):
+ filedict='/tmp/'+os.getenv('USER')+'_SALOME_pidict'
+ #filedict='/tmp/'+os.getlogin()+'_SALOME_pidict'
+ found = 0
+ try:
+ fpid=open(filedict, 'r')
+ found = 1
+ except:
+ print "le fichier %s des process SALOME n'est pas accessible"% filedict
+
+ if found:
+ process_id=pickle.load(fpid)
+ fpid.close()
+ killSalome()
+ process_id={}
+ os.remove(filedict)
+
except getopt.error, msg:
print usage
sys.exit(1)
class NotifyServer(Server):
CMD=['notifd','-c','${KERNEL_ROOT_DIR}/share/salome/resources/channel.cfg -DFactoryIORFileName=/tmp/${LOGNAME}_rdifact.ior -DChannelIORFileName=/tmp/${LOGNAME}_rdichan.ior']
-# -----------------------------------------------------------------------------
-#
-# Fonction d'arrêt de salome
-#
-
-def killSalome():
- print "arret des serveurs SALOME"
- for pid, cmd in process_id.items():
- print "arret du process %s : %s"% (pid, cmd[0])
- os.kill(pid,signal.SIGKILL)
- print "arret du naming service"
- os.system("killall -9 omniNames")
-
# -----------------------------------------------------------------------------
#
# Fonction de test
#
# -----------------------------------------------------------------------------
#
-
+
+def startGUI():
+ import SALOME
+ session=clt.waitNS("/Kernel/Session",SALOME.Session)
+
+ #
+ # Activation du GUI de Session Server
+ #
+
+ session.GetInterface()
+
+#
+# -----------------------------------------------------------------------------
+#
+
def startSalome():
#
print "Pour tuer les process SALOME, executer : python killSalome.py depuis"
print "une console, ou bien killSalome() depuis le present interpreteur,"
print "s'il n'est pas fermé."
-print "runSalome commence par tuer les process restants d'une execution précédente."
+print
+print "runSalome, avec l'option --killall, commence par tuer les process restants d'une execution précédente."
+print
+print "Pour lancer uniquement le GUI, executer startGUI() depuis le present interpreteur,"
+print "s'il n'est pas fermé."
#
# Impression arborescence Naming Service