我有一个python脚本,它在几小时后在服务器上运行并调用许多shell子进程。所有被调用的程序都不应该提示,但有时它会发生并且脚本挂起,等待输入,直到用户(我)注意到并生气。 :)
尝试:将p.communicate()与stdin = PIPE一起使用,如python子流程文档中所述。
运行:Ubuntu 10.10,Python 2.6
我不想回应提示,我希望脚本引发错误并继续。有什么想法吗?
谢谢, 亚历山大。
答案 0 :(得分:1)
作为对子进程中任何问题的全面解决方案,我建议对所有shell调用使用超时。 subprocess
模块调用中没有内置超时支持,因此您需要使用信号。详情请见Using module 'subprocess' with timeout
答案 1 :(得分:0)
在等待任务完成时需要超时,然后让脚本终止或终止进程(除了引发错误)。
答案 2 :(得分:0)
Pyexpect是一个Python工具,用于处理可能生成输出的子进程(并且可能需要输入)。它将帮助您轻松处理各种情况,包括管理超时。