import salome
import SALOME_Embedded_NamingService_ClientPy
import NamingService
+from SALOME_PyNode import FileDeleter
import signal
import os
ior_file = None
def handler(signum, frame):
- global proc
- ns = SALOME_Embedded_NamingService_ClientPy.SALOME_Embedded_NamingService_ClientPy( NamingService.NamingService.LoadIORInFile( ior_file ) )
- cm = ns.Resolve(salome.CM_NAME_IN_NS)
- cm.ShutdownContainersNow()
+ global proc,ior_file
+ try:
+ ns = SALOME_Embedded_NamingService_ClientPy.SALOME_Embedded_NamingService_ClientPy( NamingService.NamingService.LoadIORInFile( ior_file.filename ) )
+ del ior_file
+ cm = ns.Resolve(salome.CM_NAME_IN_NS)
+ cm.ShutdownContainersNow()
+ except:
+ pass
os.kill( proc.pid, signal.SIGKILL )
if __name__ == "__main__":
signal.signal(signal.SIGINT, handler)
signal.signal(signal.SIGTERM, handler)
with tempfile.NamedTemporaryFile(prefix="ior_driver_",suffix=".ior") as f:
- ior_file = f.name
- iorStuff = "{}={}".format( driver_internal.IOREntryInCMD, ior_file)
+ ior_file = FileDeleter( f.name )
+ iorStuff = "{}={}".format( driver_internal.IOREntryInCMD, ior_file.filename)
argv = [elt for elt in sys.argv[1:] if elt != ""]
proc = sp.Popen( ["python3",driver_internal.__file__] + [ iorStuff ] + argv )
proc.communicate()
+ del ior_file
\ No newline at end of file