데이터베이스에서 쿼리하고 결과를 표시하는 스크립트 클래스가 있습니다. 문제는 내가 스크립트 아래에 하위 프로세스를 추가 할 때 스크립트가 중단되거나 기다리는 것이며 ctr-c로 끝나면 계속됩니다.(Python) 서브 프로세스 블로킹
예 : 그룹 B가 삭제되면 그룹 A가 실행됩니다. 그룹 B가 삭제되면 그룹 B가 실행됩니다.
#Group A
queryStrings = ['SELECT top 100 * FROM myDb',
'SELECT top 10 * FROM anotherDb']
## class that connects to db and output the content ##
db = Database
conn = db.connectToDb()
for query in queryStrings:
db.runPreQueries(conn, query)
conn.close
##Group B
if os.path.exists("DoSomething.vbs"):
p = subprocess.Popen("cscript DoSomething.vbs", stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
stdout, stderr = p.communicate()
print("vbs completed")
또한 subprocess.call을 사용하여 시도한 다음 종료합니다. 이것은 늘 걸어하지만 당신이 정말로 데이터베이스를 종료하지 않을 conn.close
를 실행할 때 스크립트
p = subprocess.call("cscript DoSomething.vbs")
p.terminate()
콘솔에서 실행할 때''cscript DoSomething.vbs "'무엇을합니까? 끝내나요? –
예 종료합니다. 그 단순한 반향 – Led
먼저''p = subprocess.Popen ([ "cscript", 'DoSomething.vbs "], stdout = subprocess.PIPE)'시도해 보겠습니다. 출력이 필요합니까? 입력을 전달해야합니까? ? –