【发布时间】:2020-08-07 15:16:19
【问题描述】:
我有一个简单的代码:
proc = subprocess.Popen(["/home/root/cc6ul/./IQ-sampler", str(self.num_files), str(self.n), self.results_directory, self.device_id, self.rid, self.cc6ul_state_filepath], stdout=subprocess.PIPE)
while proc.poll() is None:
line = proc.stdout.readline()
self.log.info("line:{}".format(line))
这导致我的 IQ-sampler 进程提前终止。但是如果我直接从终端运行它就没有问题。我尝试对此进行调试,但我不明白根本原因。 是导致问题的通信管道吗?因为这是我能看到的两个进程之间的唯一联系。
【问题讨论】:
-
IQ-sampler是做什么的? -
IQ-sampler 是 C 代码可执行文件,它不接收文件,每个文件没有样本,并通过定时器回调从连接到雷达传感器的 ADC 收集 I&Q 通道数据。然后在成功收集每个文件后将保存文件的路径标准输出到主进程。
标签: python subprocess pipe stdout popen