import json
import subprocess
from salomeContextUtils import ScriptAndArgsObjectEncoder
+import platform
# -----------------------------------------------------------------------------
#
self.initArgs()
self.SCMD1=['SALOME_Session_Server']
+ if "SQUISH_PREFIX" in os.environ:
+ if platform.system() == "Windows" :
+ self.SCMD1 = [os.path.join(os.getenv("SQUISH_PREFIX"), "bin", "dllpreload.exe"),os.path.join(os.getenv("SQUISH_SALOME_PATH"), "W64", "GUI", "bin", "salome", self.SCMD1[0])]
+ else :
+ os.environ["LD_LIBRARY_PATH"] = os.environ["SQUISH_PREFIX"] + "/lib:" + os.environ["LD_LIBRARY_PATH"]
self.SCMD2=[]
if 'launcher' in self.args:
pos = args['launcher'].find(":")
#
clt=orbmodule.client(args)
+ addToPidict(args)
#
# Wake up session option
myServer=LoggerServer(args)
myServer.run()
clt.waitLogger("Logger")
+ addToPidict(args)
# Launch Session Server (to show splash ASAP)
#
mySessionServ = SessionServer(args,args['modules'],modules_root_dir)
mySessionServ.setpath(modules_list,modules_root_dir)
mySessionServ.run()
+ addToPidict(args)
#
# Launch Registry Server,
clt.waitNS("/Registry")
else:
clt.waitNSPID("/Registry",myServer.PID)
+ addToPidict(args)
#
# Launch Catalog Server,
clt.waitNS("/Kernel/ModulCatalog",SALOME_ModuleCatalog.ModuleCatalog)
else:
clt.waitNSPID("/Kernel/ModulCatalog",cataServer.PID,SALOME_ModuleCatalog.ModuleCatalog)
+ addToPidict(args)
#
# Launch SalomeDS Server,
clt.waitNS("/Study")
else:
clt.waitNSPID("/Study",myServer.PID)
+ addToPidict(args)
#
# Launch LauncherServer
myCmServer = LauncherServer(args)
myCmServer.setpath(modules_list,modules_root_dir)
myCmServer.run()
+ addToPidict(args)
#
# Launch ConnectionManagerServer
clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
else:
clt.waitNSPID("/Containers/" + theComputer + "/FactoryServer",myServer.PID)
+ addToPidict(args)
if 'pyContainer' in args['standalone']:
raise Exception('Python containers no longer supported')
# -----------------------------------------------------------------------------
+def addToPidict(args):
+ global process_id
+ from addToKillList import addToKillList
+ for pid, cmd in list(process_id.items()):
+ addToKillList(pid, cmd, args['port'])
+
+# -----------------------------------------------------------------------------
+
def main(exeName=None):
"""Salome launch as a main application"""
dt = 0.1
nbtot = 100
nb = 0
+ session_pid = None
while 1:
try:
status = session.GetStatSession()
gui_detected = status.activeGUI
+ session_pid = session.getPID()
except:
pass
if gui_detected:
# --
server = Server({})
if sys.platform == "win32":
- server.CMD = [os.getenv("PYTHONBIN"), "-m", "killSalomeWithPort", "--spy", "%s"%(os.getpid()), "%s"%(port)]
+ server.CMD = [os.getenv("PYTHONBIN"), "-m", "killSalomeWithPort", "--spy", "%s"%(session_pid or os.getpid()), "%s"%(port)]
else:
- server.CMD = ["killSalomeWithPort.py", "--spy", "%s"%(os.getpid()), "%s"%(port)]
+ server.CMD = ["killSalomeWithPort.py", "--spy", "%s"%(session_pid or os.getpid()), "%s"%(port)]
server.run()
# os.system("killSalomeWithPort.py --spy %s %s &"%(os.getpid(), port))
# --
except:
pass
# --
- test = test and os.getenv("SALOME_TEST_MODE", "0") != "1"
+# test = test and os.getenv("SALOME_TEST_MODE", "0") != "1"
test = test and args['foreground']
# --
if test: