-3
Как исправить этот код, чтобы использовать модуль подпроцесса для замены popen2?Замена модуля popen2 на модуль подпроцесса
popen3 = popen2.Popen3(cmd, capturestderr=True)
rc = popen3.wait()
if os.WIFEXITED(rc):
rc = os.WEXITSTATUS(rc)
if rc < 0:
#""" Needed to make sure that catastrophic errors are not processed here, hence the rc check.
#"""
if len(stderr) > 0:
inserts= []
inserts.append("Warnings occurred during run of %s" % self.__MODULE_NAME)
inserts.append("Check conversion parameters.")
#self.msgWrite("98000001", inserts)
if rc == 0:
self.msgDebug("CompartService exited normally", "Exit code with signal: %s" % str(rc))
#
Ваш пример тупиковой ситуации, если существует значительный трафик на STDERR. Вместо этого следует использовать popen.communicate(). – tdelaney
Это правда, но ОП даже не использует его. Я просто демонстрировал subprocess.Popen. –
Но вы демонстрируете неправильное использование. Это взаимоблокировки, независимо от того, использует ли он его. Просто измените это, чтобы общаться, и мы все счастливы домой. – tdelaney