當我運行這個時,我得到一個泄漏。我不確定它發生了什麼。我想管不關閉或可能是其他事情發生。感謝一個先進的傢伙!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