X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fserver.py;h=2712c880e731cbd51c661f05170716d0809e3619;hb=2dd308e0979e7af5e505bb076772161eae76b9a4;hp=8721d096fe7c97166f14870dd31b631cf4a29abe;hpb=9749fc1db72bd80e278405114b05ffc69b5031da;p=modules%2Fkernel.git diff --git a/bin/server.py b/bin/server.py index 8721d096f..2712c880e 100755 --- a/bin/server.py +++ b/bin/server.py @@ -1,6 +1,6 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2016 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 @@ -8,7 +8,7 @@ # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either -# version 2.1 of the License. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -33,7 +33,7 @@ process_id = {} class Server: """Generic class for CORBA server launch""" - + server_launch_mode = "daemon" def initArgs(self): @@ -62,19 +62,19 @@ class Server: myargs=self.ARGS if self.args.get('xterm'): # (Debian) send LD_LIBRARY_PATH to children shells (xterm) - if sys.platform != "win32": + if sys.platform == "darwin": + env_ld_library_path=['env', 'DYLD_LIBRARY_PATH=' + + os.getenv("DYLD_FALLBACK_LIBRARY_PATH")] + myargs = myargs +['-T']+self.CMD[:1]+['-e'] + env_ld_library_path + elif sys.platform != "win32": env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + 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) if sys.platform == "win32": - import win32pm - #cmd_str = "\"" + string.join(command, " ") + "\"" - #print cmd_str - #pid = win32pm.spawnpid( cmd_str ) - pid = win32pm.spawnpid( string.join(command, " "), '-nc' ) - #pid = win32pm.spawnpid( string.join(command, " ") ) + import subprocess + pid = subprocess.Popen(command).pid elif Server.server_launch_mode == "fork": pid = os.spawnvp(os.P_NOWAIT, command[0], command) else: # Server launch mode is daemon @@ -121,12 +121,13 @@ class Server: pid = os.fork() if pid > 0: #send real pid to parent - os.write(c2pwrite,"%d" % pid) + pid_str = "%d" % pid + os.write(c2pwrite,pid_str.encode()) os.close(c2pwrite) # exit from second parent os._exit(0) - except OSError, e: - print >>sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror) + except OSError as e: + print("fork #2 failed: %d (%s)" % (e.errno, e.strerror), file=sys.stderr) os.write(c2pwrite,"-1") os.close(c2pwrite) sys.exit(1) @@ -136,8 +137,6 @@ class Server: os.open("/dev/null", os.O_RDWR) # redirect standard input (0) to /dev/null try: os.execvp(args[0], args) - except OSError, e: - if args[0] != "notifd": - print >>sys.stderr, "(%s) launch failed: %d (%s)" % (args[0],e.errno, e.strerror) - pass + except OSError as e: + print("(%s) launch failed: %d (%s)" % (args[0],e.errno, e.strerror), file=sys.stderr) os._exit(127)