1
몇 초가 걸리는 bash 명령에서 정보를 얻어야합니다. 리턴 코드를 얻을 때까지 나머지 프로그램을 계속 진행하겠습니다. 나는 다중 처리로 그것을 시도했지만 콘솔이 올바른 반환 코드를 인쇄하는 모든 프로세스의 리턴 코드를 얻을 수 없다.새 프로세스에서 배시 명령 실행
from multiprocessing import Process, Value
import subprocess
num = Value("d", 0.0)
class foo(object):
def __init__(self):
self.createProcess()
def createProcess(self):
p = Process(target=self.Process, args=(num,))
p.start()
...Do Stuff here in parallel...
def Process(self,n):
somebashParam = int(n.value)
p = subprocess.Popen("some -command"+str(somebashParam),shell=True)
out, err = p.communicate()
n.value = p.returncode
- 이유는 바로 반환 코드 밖으로 콘솔 인쇄하지만 난 그것을 잡아 질수 있는가?
- 다른 새로운 프로세스에서 하위 프로세스를 시작하는 것이 이상하게 보입니다. 더 좋은 방법이 있습니까?
왜 프로세스를 폴링합니까? 간단히'do_something_else()'와'process.wait()'를 더 이해하지 않겠습니까? – hek2mgl
@ hek2mgl : 결과를 기다리는 방법에 따라 다릅니다. – Daniel
무엇을 의미합니까? – hek2mgl