Michael Felt added the comment: Curious.
First pass: using python2.7.12 also hanged as program, on the close() second pass: interactive - do the read first, then the close - seems to work: root@x064:[/data/prj/python/issues/29545]cat hello.py #!/usr/bin/env python import errno import os import pty from subprocess import Popen, STDOUT master_fd, slave_fd = pty.openpty() proc = Popen(['./hello'],stdout=slave_fd, close_fds=True) os.close(slave_fd) data = os.read(master_fd, 512) print('got ' + repr(data)) root@x064:[/data/prj/python/issues/29545]python Python 2.7.12 (default, Sep 29 2016, 12:02:17) [C] on aix5 Type "help", "copyright", "credits" or "license" for more information. >>> import errno import os import pty from subprocess import Popen, STDOUT >>> >>> >>> >>> >>> master_fd, slave_fd = pty.openpty() >>> master_fd 3 >>> slave_fd 4 >>> proc = Popen(['./hello'],stdout=slave_fd, close_fds=True) >>> data = os.read(master_fd, 512) >>> datat 'hello world\r\n' >>> os.close(slave_fd) >>> print (got ' File "<stdin>", line 1 print (got ' ^ SyntaxError: EOL while scanning string literal >>> print('got ' + repr(data)) got 'hello world\r\n' >>> quit() pass 3: swap the close() and the read() and the program works fine. "hello.py" 11 lines, 265 characters root@x064:[/data/prj/python/issues/29545]cat hello.py #!/usr/bin/env python import errno import os import pty from subprocess import Popen, STDOUT master_fd, slave_fd = pty.openpty() proc = Popen(['./hello'],stdout=slave_fd, close_fds=True) data = os.read(master_fd, 512) os.close(slave_fd) print('got ' + repr(data)) root@x064:[/data/prj/python/issues/29545]./hello.py got 'hello world\r\n' root@x064:[/data/prj/python/issues/29545] ---------- nosy: +aixto...@gmail.com _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29545> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com