擅长:python、mysql、java
<p>如果使用readline()或read(),则不应挂起。不需要检查returncode或poll()。如果它在您知道流程完成时挂起,那么它很可能是一个保持管道打开的子流程,正如其他人之前所说的。</p>
<p>有两件事可以调试:
*尝试使用最小的脚本而不是当前复杂的脚本进行复制,或者
*用<code>strace -f -e clone,execve,exit_group</code>运行那个复杂的脚本,看看该脚本启动的是什么,以及是否有任何进程在主脚本中幸存下来(检查主脚本何时调用exit_group,如果strace在此之后仍在等待,则有一个子脚本仍在活动)。</p>