Salome HOME
Change configuration
[modules/kernel.git] / bin / runSalome.py
index 3b76485fc75f28b59b0669728e0652a4fb639ae5..98ff0a19fe5369b9677d5d09d3f29ede95ef21a4 100755 (executable)
@@ -5,6 +5,11 @@ import orbmodule
 
 process_id = {}
 
+# salome_subdir variable is used for composing paths like $KERNEL_ROOT_DIR/share/salome/resources, etc.
+# before moving to SUIT-based gui, instead of salome_subdir there was args['appname'] used.
+# but after - 'appname'  = "SalomeApp", so using it in making the subdirectory is an error.
+salome_subdir = "salome"
+
 # -----------------------------------------------------------------------------
 
 def add_path(directory, variable_name):
@@ -52,6 +57,7 @@ def get_config():
     if args.has_key("modules"):
         modules_list += args["modules"]
     # KERNEL must be last in the list to locate it at the first place in PATH 
+    modules_list[:0] = ["GUI"]
     modules_list[:0] = ["KERNEL"]
     modules_list.reverse()
 
@@ -59,7 +65,7 @@ def get_config():
 
     to_remove_list=[]
     for module in modules_list :
-        module_variable=module.upper()+"_ROOT_DIR"
+        module_variable=module+"_ROOT_DIR"
         if not os.environ.has_key(module_variable):
             print "*******************************************************"
             print "*"
@@ -80,6 +86,10 @@ def get_config():
         modules_list.remove("KERNEL")
         pass
 
+    while "GUI" in modules_list:
+        modules_list.remove("GUI")
+        pass
+
     if "SUPERV" in modules_list and not 'superv' in args['standalone']:
         args['standalone'].append("superv")
         pass
@@ -93,51 +103,47 @@ def set_env(args, modules_list, modules_root_dir):
     
     python_version="python%d.%d" % sys.version_info[0:2]
     modules_root_dir_list = []
+    modules_list = modules_list[:] + ["GUI"] 
     modules_list = modules_list[:] + ["KERNEL"] 
     for module in modules_list :
-        module_root_dir = modules_root_dir[module]
-        modules_root_dir_list[:0] = [module_root_dir]
-        add_path(os.path.join(module_root_dir,"lib",args['appname']),
-                 "LD_LIBRARY_PATH")
-        add_path(os.path.join(module_root_dir,"bin",args['appname']),
-                 "PATH")
-        if os.path.exists(module_root_dir + "/examples") :
-            add_path(os.path.join(module_root_dir,"examples"),
+        if modules_root_dir.has_key(module):
+            module_root_dir = modules_root_dir[module]
+            modules_root_dir_list[:0] = [module_root_dir]
+            add_path(os.path.join(module_root_dir,"lib",salome_subdir),
+                     "LD_LIBRARY_PATH")
+            add_path(os.path.join(module_root_dir,"bin",salome_subdir),
+                     "PATH")
+            if os.path.exists(module_root_dir + "/examples") :
+                add_path(os.path.join(module_root_dir,"examples"),
+                         "PYTHONPATH")
+                pass
+            add_path(os.path.join(module_root_dir,"bin",salome_subdir),
+                     "PYTHONPATH")
+            add_path(os.path.join(module_root_dir,"lib",
+                                  python_version,"site-packages",
+                                  salome_subdir),
                      "PYTHONPATH")
-        add_path(os.path.join(module_root_dir,"bin",args['appname']),
-                 "PYTHONPATH")
-        add_path(os.path.join(module_root_dir,"lib",
-                              python_version,"site-packages",args['appname']),
-                 "PYTHONPATH")
-        add_path(os.path.join(module_root_dir,"lib",args['appname']),
-                 "PYTHONPATH")
-        add_path(os.path.join(module_root_dir,"lib",
-                              python_version,"site-packages",args['appname'],
-                              "shared_modules"),
-                 "PYTHONPATH")
+            add_path(os.path.join(module_root_dir,"lib",salome_subdir),
+                     "PYTHONPATH")
+            add_path(os.path.join(module_root_dir,"lib",
+                                  python_version,"site-packages",
+                                  salome_subdir,
+                                  "shared_modules"),
+                     "PYTHONPATH")
+            pass
+        pass
+
 
     os.environ["SALOMEPATH"]=":".join(modules_root_dir_list)
     
-    # special path for logger lib if needeed
+    # set trace environment variable
     
-    os.environ["SALOME_trace"]="local"
+    if not os.environ.has_key("SALOME_trace"):
+        os.environ["SALOME_trace"]="local"
     if args['file']:
-        os.environ["SALOME_trace"]=args['file'][0]
+        os.environ["SALOME_trace"]="file:"+args['file'][0]
     if args['logger']:
         os.environ["SALOME_trace"]="with_logger"
-        locdir=os.environ['PWD']
-        libtracedir=os.path.join(locdir,"libSalomeTrace")
-        libtrace = os.path.join(modules_root_dir["KERNEL"],"lib",
-                                args['appname'],
-                                "libSALOMELoggerClient.so.0.0.0")
-        libtraceln = os.path.join(libtracedir,"libSALOMELocalTrace.so")
-        aCommand = 'rm -rf ' + libtracedir + "; "
-        aCommand += 'mkdir ' + libtracedir + "; "
-        aCommand += 'ln -s ' + libtrace + " " + libtraceln + "; "
-        aCommand += 'ln -s ' + libtrace + " " + libtraceln + ".0; "
-        aCommand += 'ln -s ' + libtrace + " " + libtraceln + ".0.0.0; "
-        os.system(aCommand)
-        add_path(libtracedir, "LD_LIBRARY_PATH")
 
     # set environment for SMESH plugins
 
@@ -149,30 +155,62 @@ def set_env(args, modules_list, modules_root_dir):
             pass
         if args.has_key("SMESH_plugins"):
             for plugin in args["SMESH_plugins"]:
-                if os.environ.has_key(plugin.upper()+"_ROOT_DIR"):
+                plugin_root = ""
+                if os.environ.has_key(plugin+"_ROOT_DIR"):
+                    plugin_root = os.environ[plugin+"_ROOT_DIR"]
+                else:
+                    # workaround to avoid modifications of existing environment
+                    if os.environ.has_key(plugin.upper()+"_ROOT_DIR"):
+                        plugin_root = os.environ[plugin.upper()+"_ROOT_DIR"]
+                        pass
+                    pass
+                if plugin_root != "":
                     os.environ["SMESH_MeshersList"] \
                     = os.environ["SMESH_MeshersList"]+":"+plugin
-                    plugin_root = os.environ[plugin.upper()+"_ROOT_DIR"]
                     if not os.environ.has_key("SALOME_"+plugin+"Resources"):
                         os.environ["SALOME_"+plugin+"Resources"] \
                         = plugin_root+"/share/"+args["appname"]+"/resources"
                     add_path(os.path.join(plugin_root,"lib",python_version,
-                                          "site-packages",args['appname']),
+                                          "site-packages",salome_subdir),
                              "PYTHONPATH")
-                    add_path(os.path.join(plugin_root,"lib",args['appname']),
+                    add_path(os.path.join(plugin_root,"lib",salome_subdir),
                              "PYTHONPATH")
-                    add_path(os.path.join(plugin_root,"lib",args['appname']),
+                    add_path(os.path.join(plugin_root,"lib",salome_subdir),
                              "LD_LIBRARY_PATH")
-                    add_path(os.path.join(plugin_root,"bin",args['appname']),
+                    add_path(os.path.join(plugin_root,"bin",salome_subdir),
                              "PYTHONPATH")
-                    add_path(os.path.join(plugin_root,"bin",args['appname']),
+                    add_path(os.path.join(plugin_root,"bin",salome_subdir),
                              "PATH")
             pass
         pass
 
     # set environment for SUPERV module
     os.environ["ENABLE_MACRO_NODE"]="1"
-   
+    # set resources variables if not yet set
+    if os.getenv("GUI_ROOT_DIR"):
+        if not os.getenv("SUITRoot"): os.environ["SUITRoot"] =  os.getenv("GUI_ROOT_DIR") + "/share/salome"
+        if not os.getenv("SalomeAppConfig"): os.environ["SalomeAppConfig"] =  os.getenv("GUI_ROOT_DIR") + "/share/salome/resources"
+        pass   
+
+    # set CSF_PluginDefaults variable only if it is not customized
+    # by the user
+    if not os.getenv("CSF_PluginDefaults"):
+        os.environ["CSF_PluginDefaults"] \
+        = os.path.join(modules_root_dir["KERNEL"],"share",
+                       salome_subdir,"resources")
+    os.environ["CSF_SALOMEDS_ResourcesDefaults"] \
+    = os.path.join(modules_root_dir["KERNEL"],"share",
+                   salome_subdir,"resources")
+
+    if "GEOM" in modules_list:
+        print "GEOM OCAF Resources"
+        os.environ["CSF_GEOMDS_ResourcesDefaults"] \
+        = os.path.join(modules_root_dir["GEOM"],"share",
+                       salome_subdir,"resources")
+       print "GEOM Shape Healing Resources"
+        os.environ["CSF_ShHealingDefaults"] \
+        = os.path.join(modules_root_dir["GEOM"],"share",
+                       salome_subdir,"resources")
 
 # -----------------------------------------------------------------------------
 
@@ -222,13 +260,14 @@ def kill_salome(args):
        
 # -----------------------------------------------------------------------------
 #
-# Définition des classes d'objets pour le lancement des Server CORBA
+# Definition des classes d'objets pour le lancement des Server CORBA
 #
 
 class Server:
     """Generic class for CORBA server launch"""
 
     def initArgs(self):
+        self.PID=None
         self.CMD=[]
         self.ARGS=[]   
         if self.args['xterm']:
@@ -248,24 +287,26 @@ class Server:
                                  + os.getenv("LD_LIBRARY_PATH")]
             myargs = myargs +['-T']+self.CMD[:1]+['-e'] + env_ld_library_path
         command = myargs + self.CMD
-        print "command = ", command
+        print "command = ", command
         pid = os.spawnvp(os.P_NOWAIT, command[0], command)
         process_id[pid]=self.CMD
+        self.PID = pid
 
 
 class InterpServer(Server):
     def __init__(self,args):
         self.args=args
         env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")]
-        #self.CMD=['xterm', '-iconic', '-sb', '-sl', '500', '-hold','-e']+ env_ld_library_path + ['python']
-        self.CMD=['xterm', '-e', 'python']
+        self.CMD=['xterm', '-e']+ env_ld_library_path + ['python']
+        #self.CMD=['xterm', '-e', 'python']
        
     def run(self):
         global process_id
         command = self.CMD
-        print "command = ", command
+        #print "command = ", command
         pid = os.spawnvp(os.P_NOWAIT, command[0], command)
         process_id[pid]=self.CMD
+        self.PID = pid
 
 # ---
 
@@ -274,21 +315,26 @@ class CatalogServer(Server):
         self.args=args
         self.initArgs()
         self.SCMD1=['SALOME_ModuleCatalog_Server','-common']
-        self.SCMD2=['-personal',
-                    '${HOME}/Salome/resources/CatalogModulePersonnel.xml'] 
+        self.SCMD2=[]
+        home_dir=os.getenv('HOME')
+        if home_dir is not None:
+            self.SCMD2=['-personal',os.path.join(home_dir,'Salome/resources/CatalogModulePersonnel.xml')] 
 
     def setpath(self,modules_list,modules_root_dir):
         cata_path=[]
         list_modules = modules_list[:]
         list_modules.reverse()
-        for module in ["KERNEL"] + list_modules:
-            module_root_dir=modules_root_dir[module]
-            module_cata=module+"Catalog.xml"
-            print "   ", module_cata
-            cata_path.extend(
-                glob.glob(os.path.join(module_root_dir,
-                                       "share",self.args['appname'],
-                                       "resources",module_cata)))
+        for module in ["KERNEL", "GUI"] + list_modules:
+            if modules_root_dir.has_key(module):
+                module_root_dir=modules_root_dir[module]
+                module_cata=module+"Catalog.xml"
+                #print "   ", module_cata
+                cata_path.extend(
+                    glob.glob(os.path.join(module_root_dir,
+                                           "share",salome_subdir,
+                                           "resources",module_cata)))
+                pass
+            pass
         self.CMD=self.SCMD1 + [string.join(cata_path,':')] + self.SCMD2
 
 # ---
@@ -341,26 +387,6 @@ class LoggerServer(Server):
 
 # ---
 
-class SessionLoader(Server):
-    def __init__(self,args):
-        self.args=args
-        self.initArgs()
-        self.CMD=['SALOME_Session_Loader']
-        if "cppContainer" in self.args['standalone'] \
-        or "cppContainer" in self.args['embedded']:
-            self.CMD=self.CMD+['CPP']
-        if "pyContainer" in self.args['standalone'] \
-        or "pyContainer" in self.args['embedded']:
-            self.CMD=self.CMD+['PY']
-        if "supervContainer" in self.args['containers'] \
-        or "supervContainer" in self.args['standalone']:
-            self.CMD=self.CMD+['SUPERV']
-        if self.args['gui']:
-            self.CMD=self.CMD+['GUI']
-        print self.CMD
-
-# ---
-
 class SessionServer(Server):
     def __init__(self,args):
         self.args=args
@@ -372,43 +398,92 @@ class SessionServer(Server):
                          '(','--salome_session','theSession',')']
         if 'moduleCatalog' in self.args['embedded']:
             self.SCMD1+=['--with','ModuleCatalog','(','-common']
-            self.SCMD2+=['-personal',
-                     '${HOME}/Salome/resources/CatalogModulePersonnel.xml',')']
+            home_dir=os.getenv('HOME')
+            if home_dir is not None:
+                self.SCMD2+=['-personal',os.path.join(home_dir,'Salome/resources/CatalogModulePersonnel.xml')] 
+            self.SCMD2+=[')']
         if 'study' in self.args['embedded']:
             self.SCMD2+=['--with','SALOMEDS','(',')']
         if 'cppContainer' in self.args['embedded']:
             self.SCMD2+=['--with','Container','(','FactoryServer',')']
+        if 'SalomeAppEngine' in self.args['embedded']:
+            self.SCMD2+=['--with','SalomeAppEngine','(',')']
+            
+        if 'cppContainer' in self.args['standalone'] or 'cppContainer' in self.args['embedded']:
+            self.SCMD2+=['CPP']
+        if 'pyContainer' in self.args['standalone'] or 'pyContainer' in self.args['embedded']:
+            self.SCMD2+=['PY']
+        if 'supervContainer' in self.args['containers'] or 'supervContainer' in self.args['standalone']:
+            self.SCMD2+=['SUPERV']
+        if self.args['gui']:
+            self.SCMD2+=['GUI']
+        if self.args['splash']:
+            self.SCMD2+=['SPLASH']
+        if self.args['noexcepthandler']:
+            self.SCMD2+=['noexcepthandler']
+        if self.args.has_key('modules'):
+            self.SCMD2+=['--modules (']
+            for mod in self.args['modules']:
+                self.SCMD2+=[mod + ':']
+            self.SCMD2+=[')']    
 
     def setpath(self,modules_list,modules_root_dir):
         cata_path=[]
         list_modules = modules_list[:]
         list_modules.reverse()
-        for module in ["KERNEL"] + list_modules:
+        for module in ["KERNEL", "GUI"] + list_modules:
             module_root_dir=modules_root_dir[module]
             module_cata=module+"Catalog.xml"
-            print "   ", module_cata
+            #print "   ", module_cata
             cata_path.extend(
                 glob.glob(os.path.join(module_root_dir,"share",
-                                       self.args['appname'],"resources",
+                                       salome_subdir,"resources",
                                        module_cata)))
         if 'moduleCatalog' in self.args['embedded']:
             self.CMD=self.SCMD1 + [string.join(cata_path,':')] + self.SCMD2
         else:
             self.CMD=self.SCMD1 + self.SCMD2
-
-##      # arguments SALOME_Session_Server pour ddd
-##      comm_ddd=""
-##      for mot in self.CMD:
-##          if mot == "(":
-##              comm_ddd+='"(" '
-##          elif mot == ")":
-##              comm_ddd+='")" '
-##          else:
-##              comm_ddd+=mot+" "
-##      print comm_ddd
       
 # ---
 
+class ContainerManagerServer(Server):
+    def __init__(self,args):
+        self.args=args
+        self.initArgs()
+        self.SCMD1=['SALOME_ContainerManagerServer']
+        self.SCMD2=[]
+        if 'registry' in self.args['embedded']:
+            self.SCMD1+=['--with','Registry',
+                         '(','--salome_session','theSession',')']
+        if 'moduleCatalog' in self.args['embedded']:
+            self.SCMD1+=['--with','ModuleCatalog','(','-common']
+            self.SCMD2+=['-personal',
+                         '${HOME}/Salome/resources/CatalogModulePersonnel.xml',')']
+        if 'study' in self.args['embedded']:
+            self.SCMD2+=['--with','SALOMEDS','(',')']
+        if 'cppContainer' in self.args['embedded']:
+            self.SCMD2+=['--with','Container','(','FactoryServer',')']
+        
+    def setpath(self,modules_list,modules_root_dir):
+        cata_path=[]
+        list_modules = modules_list[:]
+        list_modules.reverse()
+        for module in ["KERNEL", "GUI"] + list_modules:
+            if modules_root_dir.has_key(module):
+                module_root_dir=modules_root_dir[module]
+                module_cata=module+"Catalog.xml"
+                #print "   ", module_cata
+                cata_path.extend(
+                    glob.glob(os.path.join(module_root_dir,"share",
+                                           self.args['appname'],"resources",
+                                           module_cata)))
+                pass
+            pass
+        if 'moduleCatalog' in self.args['embedded']:
+            self.CMD=self.SCMD1 + [string.join(cata_path,':')] + self.SCMD2
+        else:
+            self.CMD=self.SCMD1 + self.SCMD2
+
 class NotifyServer(Server):
     def __init__(self,args,modules_root_dir):
         self.args=args
@@ -429,6 +504,7 @@ class NotifyServer(Server):
 def startGUI():
     """Salome Session Graphic User Interface activation"""
     import SALOME
+    import SALOME_Session_idl
     session=clt.waitNS("/Kernel/Session",SALOME.Session)
     session.GetInterface()
   
@@ -438,16 +514,8 @@ def startSalome(args, modules_list, modules_root_dir):
     """Launch all SALOME servers requested by args"""
     init_time = os.times()
 
-    #
-    # Lancement Session Loader
-    #
-
     print "startSalome ", args
     
-    if args['gui']:
-        myServer=SessionLoader(args)
-        myServer.run()
-
     #
     # Initialisation ORB et Naming Service
     #
@@ -473,17 +541,17 @@ def startSalome(args, modules_list, modules_root_dir):
 
     #
     # Lancement Registry Server,
-    # attente de la disponibilité du Registry dans le Naming Service
+    # attente de la disponibilite du Registry dans le Naming Service
     #
 
     if 'registry' not in args['embedded']:
         myServer=RegistryServer(args)
         myServer.run()
-        clt.waitNS("/Registry")
+        clt.waitNSPID("/Registry",myServer.PID)
 
     #
     # Lancement Catalog Server,
-    # attente de la disponibilité du Catalog Server dans le Naming Service
+    # attente de la disponibilite du Catalog Server dans le Naming Service
     #
     
 
@@ -492,51 +560,28 @@ def startSalome(args, modules_list, modules_root_dir):
         cataServer.setpath(modules_list,modules_root_dir)
         cataServer.run()
         import SALOME_ModuleCatalog
-        clt.waitNS("/Kernel/ModulCatalog",SALOME_ModuleCatalog.ModuleCatalog)
+        clt.waitNSPID("/Kernel/ModulCatalog",cataServer.PID,SALOME_ModuleCatalog.ModuleCatalog)
 
     #
     # Lancement SalomeDS Server,
-    # attente de la disponibilité du SalomeDS dans le Naming Service
+    # attente de la disponibilite du SalomeDS dans le Naming Service
     #
 
-    os.environ["CSF_PluginDefaults"] \
-    = os.path.join(modules_root_dir["KERNEL"],"share",
-                   args['appname'],"resources")
-    os.environ["CSF_SALOMEDS_ResourcesDefaults"] \
-    = os.path.join(modules_root_dir["KERNEL"],"share",
-                   args['appname'],"resources")
-
-    if "GEOM" in modules_list:
-        print "GEOM OCAF Resources"
-        os.environ["CSF_GEOMDS_ResourcesDefaults"] \
-        = os.path.join(modules_root_dir["GEOM"],"share",
-                       args['appname'],"resources")
-       print "GEOM Shape Healing Resources"
-        os.environ["CSF_ShHealingDefaults"] \
-        = os.path.join(modules_root_dir["GEOM"],"share",
-                       args['appname'],"resources")
-
+    #print "ARGS = ",args
     if 'study' not in args['embedded']:
+        print "RunStudy"
         myServer=SalomeDSServer(args)
         myServer.run()
-        clt.waitNS("/myStudyManager")
+        clt.waitNSPID("/myStudyManager",myServer.PID)
 
     #
-    # Lancement Session Server
-    #
-
-    mySessionServ = SessionServer(args)
-    mySessionServ.setpath(modules_list,modules_root_dir)
-    mySessionServ.run()
-
-    #macomm2=['ddd']
-    #pid = os.spawnvp(os.P_NOWAIT, macomm2[0], macomm2)
-    #
-    # Attente de la disponibilité du Session Server dans le Naming Service
+    # Lancement ContainerManagerServer
     #
+    
+    myCmServer = ContainerManagerServer(args)
+    myCmServer.setpath(modules_list,modules_root_dir)
+    myCmServer.run()
 
-    import SALOME
-    session=clt.waitNS("/Kernel/Session",SALOME.Session)
 
     from Utils_Identity import getShortHostName
     
@@ -550,46 +595,77 @@ def startSalome(args, modules_list, modules_root_dir):
     
     #
     # Lancement Container C++ local,
-    # attente de la disponibilité du Container C++ local dans le Naming Service
+    # attente de la disponibilite du Container C++ local dans le Naming Service
     #
 
     if 'cppContainer' in args['standalone']:
         myServer=ContainerCPPServer(args)
         myServer.run()
-        clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
+        clt.waitNSPID("/Containers/" + theComputer + "/FactoryServer",myServer.PID)
 
     #
     # Lancement Container Python local,
-    # attente de la disponibilité du Container Python local
+    # attente de la disponibilite du Container Python local
     # dans le Naming Service
     #
 
     if 'pyContainer' in args['standalone']:
         myServer=ContainerPYServer(args)
         myServer.run()
-        clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy")
+        clt.waitNSPID("/Containers/" + theComputer + "/FactoryServerPy",myServer.PID)
 
     #
     # Lancement Container Supervision local,
-    # attente de la disponibilité du Container Supervision local
+    # attente de la disponibilite du Container Supervision local
     # dans le Naming Service
     #
 
     if 'supervContainer' in args['standalone']:
         myServer=ContainerSUPERVServer(args)
         myServer.run()
-        clt.waitNS("/Containers/" + theComputer + "/SuperVisionContainer")
+        clt.waitNSPID("/Containers/" + theComputer + "/SuperVisionContainer",myServer.PID)
+
+    #
+    # Lancement Session Server
+    #
+
+    mySessionServ = SessionServer(args)
+    mySessionServ.setpath(modules_list,modules_root_dir)
+    mySessionServ.run()
+##----------------        
+
+    # Attente de la disponibilite du Session Server dans le Naming Service
+    #
+
+    import SALOME
+    import SALOME_Session_idl
+    session=clt.waitNSPID("/Kernel/Session",mySessionServ.PID,SALOME.Session)
 
     end_time = os.times()
     print
     print "Start SALOME, elapsed time : %5.1f seconds"% (end_time[4]
                                                          - init_time[4])
 
+    # ASV start GUI without Loader
+    #if args['gui']:
+    #    session.GetInterface()
+
     #
     # additionnal external python interpreters
     #
-
-    nbaddi = int(args['interp'][0])
+    nbaddi=0
+    
+    try:
+        if 'interp' in args:
+            if args['interp']:
+                nbaddi = int(args['interp'][0])
+    except:
+        import traceback
+        traceback.print_exc()
+        print "-------------------------------------------------------------"
+        print "-- to get an external python interpreter:runSalome --interp=1"
+        print "-------------------------------------------------------------"
+        
     print "additional external python interpreters: ", nbaddi
     if nbaddi:
         for i in range(nbaddi):
@@ -619,10 +695,10 @@ def useSalome(args, modules_list, modules_root_dir):
         print "--- erreur au lancement Salome ---"
         
     #print process_id
-    
-    filedict = '/tmp/' + os.getenv('USER') + "_" + str(args['port']) \
-             + '_' + args['appname'].upper() + '_pidict'
-   
+
+    from killSalomeWithPort import getPiDict
+    filedict = getPiDict(args['port'])
+
     process_ids = []
     try:
         fpid=open(filedict, 'r')