python subprocess:进程提示时引发错误

时间:2011-02-28 13:58:24

标签: python subprocess

我有一个python脚本,它在几小时后在服务器上运行并调用许多shell子进程。所有被调用的程序都不应该提示,但有时它会发生并且脚本挂起,等待输入,直到用户(我)注意到并生气。 :)

尝试:将p.communicate()与stdin = PIPE一起使用,如python子流程文档中所述。

运行:Ubuntu 10.10,Python 2.6

我不想回应提示,我希望脚本引发错误并继续。有什么想法吗?

谢谢, 亚历山大。

3 个答案:

答案 0 :(得分:1)

作为对子进程中任何问题的全面解决方案,我建议对所有shell调用使用超时。 subprocess模块调用中没有内置超时支持,因此您需要使用信号。详情请见Using module 'subprocess' with timeout

答案 1 :(得分:0)

在等待任务完成时需要超时,然后让脚本终止或终止进程(除了引发错误)。

答案 2 :(得分:0)

Pyexpect是一个Python工具,用于处理可能生成输出的子进程(并且可能需要输入)。它将帮助您轻松处理各种情况,包括管理超时。

请参阅:http://www.noah.org/wiki/pexpect