当我运行这个时,我得到一个泄漏。我不确定它发生了什么。我想管不关闭或可能是其他事情发生。感谢一个先进的家伙!python中运行子进程时泄漏
def deactivateMetadataDevice(input_dmd_lun_wwn):
#print('pvremove /dev/mapper/' + input_dmd_lun_wwn)
status_cmd = False
ps = subprocess.Popen('/sbin/pvremove /dev/mapper/' + input_dmd_lun_wwn, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in iter(ps.stdout.readline, ''):
print line
if re.search('wiped', line):
status_cmd = True
else:
# Cleaning metadata and removing from LVM if ok then return true
status_cmd = False
raise Warning('\t\t PV /dev/mapper/'+ input_dmd_lun_wwn +' belongs to Volume Group')
return status_cmd
当我运行上面的代码时出现此问题。
File descriptor 4 (pipe:[323948]) leaked on pvremove invocation. Parent PID 15380: python
该代码在没有“擦除”单词的第一行中引发异常,然后完全放弃该过程。这是pvremove,所以你应该让它完成它的工作,继续阅读标准输出,然后做一个ps.wait()。然后你可以提出你的警告。 – tdelaney