X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2FkillSalomeWithPort.py;h=66fd32671d5bc2da8223bdbe7f8c1ccbfb1d00b3;hb=af4980594d69b0779f9ac77e4e86132d56afba66;hp=fa8953b7c566830afa881bc83d928b625a855142;hpb=b7e1322de9ff9e2947d1a914d4bc20c2cb395cb5;p=modules%2Fkernel.git diff --git a/bin/killSalomeWithPort.py b/bin/killSalomeWithPort.py index fa8953b7c..66fd32671 100755 --- a/bin/killSalomeWithPort.py +++ b/bin/killSalomeWithPort.py @@ -1,6 +1,6 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2020 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 @@ -31,7 +31,7 @@ # \endcode # -import os, sys, pickle, signal, commands,glob +import os, sys, pickle, signal, subprocess,glob import subprocess import shlex from salome_utils import verbose @@ -71,12 +71,12 @@ def getPiDict(port,appname='salome',full=True,hidden=True,hostname=None): # full path to the pidict file is requested if hidden: # new-style dot-prefixed pidict files - # are in the system-dependant temporary diretory + # are in the system-dependant temporary directory dir = getLogDir() else: # old-style non-dot-prefixed pidict files # are in the user's home directory - dir = os.getenv("HOME") + dir = os.path.expanduser("~") pass pass @@ -96,7 +96,7 @@ def appliCleanOmniOrbConfig(port): the last is removed only if the link points to the first file. """ if verbose(): - print "clean OmniOrb config for port %s"%port + print("clean OmniOrb config for port %s"%port) from salome_utils import generateFileName, getUserName omniorbUserPath = os.getenv("OMNIORB_USER_PATH") @@ -202,24 +202,29 @@ def shutdownMyPort(port, cleanup=True): # shutdown all orb = CORBA.ORB_init([''], CORBA.ORB_ID) lcc = LifeCycleCORBA(orb) # see (1) - print "Terminating SALOME on port %s..."%(port) + print("Terminating SALOME on port %s..."%(port)) lcc.shutdownServers() # give some time to shutdown to complete time.sleep(1) # shutdown omniNames if cleanup: - lcc.killOmniNames() - time.sleep(1) - pass + from salome_utils import killOmniNames + killOmniNames(port) + filedict=getPiDict(port) + __killMyPort(port, filedict) + from PortManager import releasePort + releasePort(port) + time.sleep(1) + pass pass except: pass sys.exit(0) # see (1) pass # (1) If --shutdown-servers option is set to 1, session close procedure is -# called twice: first explicitely by salome command, second by automatic +# called twice: first explicitly by salome command, second by automatic # atexit to handle Ctrl-C. During second call, LCC does not exist anymore and -# a RuntimeError is raised; we explicitely exit this function with code 0 to +# a RuntimeError is raised; we explicitly exit this function with code 0 to # prevent parent thread from crashing. def __killMyPort(port, filedict): @@ -228,22 +233,22 @@ def __killMyPort(port, filedict): port = int(port) try: - with open(filedict, 'r') as fpid: + with open(filedict, 'rb') as fpid: process_ids=pickle.load(fpid) for process_id in process_ids: - for pid, cmd in process_id.items(): - if verbose(): print "stop process %s : %s"% (pid, cmd[0]) + for pid, cmd in list(process_id.items()): + if verbose(): print("stop process %s : %s"% (pid, cmd[0])) try: from salome_utils import killpid killpid(int(pid)) except: - if verbose(): print " ------------------ process %s : %s not found"% (pid, cmd[0]) + if verbose(): print(" ------------------ process %s : %s not found"% (pid, cmd[0])) pass pass # for pid ... pass # for process_id ... # end with except: - print "Cannot find or open SALOME PIDs file for port", port + print("Cannot find or open SALOME PIDs file for port", port) pass os.remove(filedict) pass @@ -276,7 +281,7 @@ def __guessPiDictFilename(port): log_msg += " ... not found\n" if verbose(): - print log_msg + print(log_msg) return filedict # @@ -296,12 +301,12 @@ def killMyPort(port): filedict = getPiDict(port) if not os.path.isfile(filedict): # removed by previous call, see (1) if verbose(): - print "SALOME on port %s: already removed by previous call"%port + print("SALOME on port %s: already removed by previous call"%port) # Remove port from PortManager config file try: from PortManager import releasePort if verbose(): - print "Removing port from PortManager configuration file" + print("Removing port from PortManager configuration file") releasePort(port) except ImportError: pass @@ -391,10 +396,10 @@ def killMyPortSpy(pid, port): if __name__ == "__main__": if len(sys.argv) < 2: - print "Usage: " - print " %s " % os.path.basename(sys.argv[0]) - print - print "Kills SALOME session running on specified ." + print("Usage: ") + print(" %s " % os.path.basename(sys.argv[0])) + print() + print("Kills SALOME session running on specified .") sys.exit(1) pass if sys.argv[1] == "--spy": @@ -408,8 +413,8 @@ if __name__ == "__main__": try: from salomeContextUtils import setOmniOrbUserPath #@UnresolvedImport setOmniOrbUserPath() - except Exception, e: - print e + except Exception as e: + print(e) sys.exit(1) for port in sys.argv[1:]: killMyPort(port)