我编写以下示例代码来演示我的问题:
from subprocess import Popen
while 1:
try:
proc = Popen(['tail', '-3', '/var/log/syslog'])
except KeyboardInterrupt:
break
当我输入ctrl + c时,我将获得追溯:
File "/usr/lib/python2.7/subprocess.py" line 1317, in _execute_child
os.close(errpipe_read)
OSError: [Errno 9] Bad file descriptor
我原本认为文件描述符是由spawn进程和父进程共享的,所以在goolgling之后我尝试以下代码:
proc = Popen(['tail', '-3', '/var/log/syslog'], preexec_fn=os.setpgrp)
但仍然有那个追溯记录。怎么解决这个?任何建议都表示赞赏。