Python PDB завершает работу, когда stdin был закрыт - PullRequest
0 голосов
/ 03 сентября 2018

Когда stdin было закрыто, close или dup2, PDB немедленно закрывался.

(Pdb) list
  1  -> import os
  2     import sys
  3     
  4     print open(os.devnull, 'r+b').fileno()
  5     print sys.stdin.fileno()
  6     
  7     with open(os.devnull, 'r+b') as nullfile:
  8         os.dup2(nullfile.fileno(), sys.stdin.fileno())
  9     
 10     print "hello"
[EOF]
(Pdb) n
> /tmp/fd.py(2)<module>()
-> import sys
(Pdb) 
> /tmp/fd.py(4)<module>()
-> print open(os.devnull, 'r+b').fileno()
(Pdb) 
3
... omitted ...
-> os.dup2(nullfile.fileno(), sys.stdin.fileno())
(Pdb) 
> /tmp/fd.py(10)<module>()
-> print "hello"
(Pdb)                           <-- exits immediately
root@swift01:/tmp#
...