From 125bb4e5575799981f3f79da65589234b1d73c9f Mon Sep 17 00:00:00 2001 From: nri Date: Tue, 3 Jun 2003 13:53:20 +0000 Subject: [PATCH] NRI : Update launch. --- bin/runSalome | 3 +- bin/runSalome.py | 77 +++++++++++++++++++++++++++++++++++++----------- 2 files changed, 61 insertions(+), 19 deletions(-) diff --git a/bin/runSalome b/bin/runSalome index 2734aa804..0c88c8c98 100755 --- a/bin/runSalome +++ b/bin/runSalome @@ -8,8 +8,7 @@ export SMESH_ROOT_DIR=/Salome2/SMESH_install 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 diff --git a/bin/runSalome.py b/bin/runSalome.py index c61998d89..070be63dd 100755 --- a/bin/runSalome.py +++ b/bin/runSalome.py @@ -9,12 +9,34 @@ usage="""USAGE: runSalome.py [options] --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 _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) @@ -22,7 +44,7 @@ def message(code, msg=''): 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={} @@ -65,7 +87,23 @@ try: 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) @@ -170,19 +208,6 @@ class SessionServer(Server): 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 @@ -251,7 +276,21 @@ for module in liste_modules_reverse: # # ----------------------------------------------------------------------------- # - + +def startGUI(): + import SALOME + session=clt.waitNS("/Kernel/Session",SALOME.Session) + + # + # Activation du GUI de Session Server + # + + session.GetInterface() + +# +# ----------------------------------------------------------------------------- +# + def startSalome(): # @@ -416,7 +455,11 @@ print "Sauvegarde du dictionnaire des process dans ", filedict 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 -- 2.39.2