为什么python子进程调用超时会挂起其调用的shell程序?

为什么python子进程调用超时会挂起其调用的shell程序?

我的程序就像

import subprocess

subprocess.run(f"timeout -s 9 30 cat", shell=True)

但是,它对来自 tty 的输入没有反应。

删除超时或在普通 tty shell 中运行完整命令将按预期进行。

是什么原因导致蟒蛇挂起?

环境:

$ uname -rv
5.10.0-13-amd64 #1 SMP Debian 5.10.106-1 (2022-03-17)
$ python3 --version
Python 3.9.2
$ bash --version
GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
$ dpkg -l | grep dash
ii  dash                              0.5.11+git20200708+dd9ef66-5   amd64        POSIX-compliant shell

相关内容