Salome HOME
Fix regression: killSalomeWithPort does not kill sessions of the old versions of...
[modules/kernel.git] / bin / killSalomeWithPort.py
index 4403a8bc2687442826ec7f35b46e6fbbf27d5880..59c977a333b5f60e79560bff60b62de8abe3d606 100755 (executable)
@@ -1,5 +1,6 @@
-#!/usr/bin/env python
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+#! /usr/bin/env python
+#  -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
+## \file killSalomeWithPort.py
+#  Stop all %SALOME servers from given sessions by killing them
+#
+#  The sessions are indicated by their ports on the command line as in :
+#  \code
+#  killSalomeWithPort.py 2811 2815
+#  \endcode
+#
+
 import os, sys, pickle, signal, commands,glob
 from launchConfigureParser import verbose
 import Utils_Identity
 import salome_utils
 
-def getPiDict(port,appname='salome',full=True,hidden=True):
+def getPiDict(port,appname='salome',full=True,hidden=True,hostname=None):
     """
     Get file with list of SALOME processes.
     This file is located in the user's home directory
@@ -42,8 +53,9 @@ def getPiDict(port,appname='salome',full=True,hidden=True):
     - hidden  : if True, file name is prefixed with . (dot) symbol; this internal parameter is used
     to support compatibility with older versions of SALOME
     """
-    from salome_utils import generateFileName, getTmpDir
-    dir = ""
+    from salome_utils import generateFileName, getTmpDir, getHostName
+    if not hostname:
+        hostname = os.getenv("NSHOST") or getHostName()
     if full:
         # full path to the pidict file is requested
         if hidden:
@@ -60,7 +72,7 @@ def getPiDict(port,appname='salome',full=True,hidden=True):
                             suffix="pidict",
                             hidden=hidden,
                             with_username=True,
-                            with_hostname=True,
+                            with_hostname=hostname,
                             with_port=port,
                             with_app=appname.upper())
 
@@ -102,6 +114,8 @@ def appliCleanOmniOrbConfig(port):
             os.remove(omniorb_config)
             pass
 
+        if os.path.lexists(last_running_config):return 
+
         #try to relink last.cfg to an existing config file if any
         files = glob.glob(os.path.join(os.environ["HOME"],Utils_Identity.getapplipath(),
                                        "USERS",".omniORB_"+salome_utils.getUserName()+"_*.cfg"))
@@ -126,16 +140,26 @@ def killMyPort(port):
     Parameters:
     - port - port number
     """
+    from salome_utils import getShortHostName
     # new-style dot-prefixed pidict file
     filedict = getPiDict(port, hidden=True)
     # provide compatibility with old-style pidict file (not dot-prefixed)
     if not os.path.exists(filedict): filedict = getPiDict(port, hidden=False)
+    # provide compatibility with old-style pidict file (shost hostname)
+    if not os.path.exists(filedict): filedict = getPiDict(port, hidden=True,  hostname=getShortHostName())
+    # provide compatibility with old-style pidict file (not dot-prefixed, shost hostname)
+    if not os.path.exists(filedict): filedict = getPiDict(port, hidden=False, hostname=getShortHostName())
     #
     try:
         fpid = open(filedict, 'r')
         #
         from salome_utils import generateFileName
-        fpidomniNames = generateFileName(os.path.join('/tmp/logs', os.getenv('USER')),
+        if sys.platform == "win32":
+            username = os.getenv( "USERNAME" )
+        else:
+            username = os.getenv('USER')
+        path = os.path.join('/tmp/logs', username)
+        fpidomniNames = generateFileName(path,
                                          prefix="",
                                          suffix="Pid_omniNames",
                                          extension="log",