Charles-François Natali <neolo...@free.fr> added the comment: > The problem I have with the solution that is currently implemented is that > subprocess is waiting for the spawned child although the child is not running > anymore. > In my case this issue occured when invoking samba or the small sample daemon > (see attached file above). > For example, invoking the daemon from a bash, the daemon program exits > immediately and its spawned child is running in the background. The point is > that the bash is accessible right after starting the daemon. It is not > waiting for the daemon process in the background to close the open pipe. > > What do you think of using a waitpid for this scenario? > subprocess.Popen could wait for the pid of the daemon starter and gets back > control once the pid of the daemon starter is gone. This way, > subprocess.Popen does not need to wait for EOF on left-open pipes.
That would defeat the semantics of communicate(): it is supposed to wait until EOF. If this doesn't work for your use case, simply don't use communicate(), or close stdout and stderr in your child process. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue13422> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com