trouble with sys.exec and sockets/ssh
Richard Cook
rcook at llnl.gov
Fri Feb 21 16:48:48 EST 2003
More information about the Python-list mailing list
Fri Feb 21 16:48:48 EST 2003
- Previous message (by thread): trouble with sys.exec and sockets/ssh
- Next message (by thread): trouble with sys.exec and sockets/ssh
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
At 7:52 PM +0000 2/21/03, Donn Cave wrote: >Quoth Richard Cook <rcook at llnl.gov>: > >| I have a problem as follows. I call an executable with os.execv(cmd, >| args) and it launches fine. However, it then misbehaves. The normal >| behavior of the program is to fork off children, each of which execs >| another process (ssh), which creates a process on a remote machine, >| which connects back to the main process using a socket connection >| over TCP/IP or UDP. This works fine every time from the shell >| command line. But it fails from my python script. The behavior when >| I fork it off using os.execv in python is that the socket connections >| back "home" from the children fail. Not all of them fail, just many >| of them. (If any fail, it's a disaster for me.) Clearly the >| environment that the process I execv from python sees is somehow >| different than that seen by the same process if I run it from the >| shell. Can anyone guess as to what I'm doing wrong or not >| understanding? Thank you. > >What does "the socket connections ... fail" mean? They abort >with "Connection refused" errors? > >I don't really have much of a clue, and you may have to post an >example program before anyone sees the problem. But one thing >you might try is a little delay - put a time.sleep(1.0) between >the forks, the real idea being to stagger the incoming connections >a little. If that helps but isn't attractive, you might be able >to deal with the problem by increasing the listen() value. I knew this question would cause confusion. Here is my example program: import os os.execv('ensight7.sos', 'ensight7.sos', '-c', 'somehost.somewhere.gov') That's it. I don't have control over how ensight7.sos forks its children. I don't do any forking in my program. When I run ensight7.sos -c somehost.somewhere.gov from the command line, it works fine. It spawns remote processes which connect back to itself just fine. But when I launch it from python with os.execv, it does not work. It's as if the "socket environment" is different for things exec'd from a pythong script. Does python modify its environment in any way when it launches? -- Richard Cook Lawrence Livermore National Laboratory Bldg-451 Rm-2043, Mail Stop L-561 7000 East Avenue, Livermore, CA, 94550, USA phone (925) 423-9605 (work) fax (925) 423-8704 --- Information Management & Graphics Grp., Services & Development Div., Integrated Computing & Communications Dept. (opinions expressed herein are mine and not those of LLNL)
- Previous message (by thread): trouble with sys.exec and sockets/ssh
- Next message (by thread): trouble with sys.exec and sockets/ssh
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list