2017-12-19 20 views
0

다음 코드를 사용하여 kvm에 가상 머신을 만듭니다. 완벽하게 작동하지만 .... 내 HTML 페이지는 1 ~ 2 초 후에 실행되는 가상 머신 ... 를 만들기위한 명령은이 명령의 작업은 다음 내가 다음 페이지 에 가고 싶다 ... 수행하지만 여전히리눅스 명령을 실행하기 위해 python cgi를 사용하는 동안 HTML 페이지가로드되지 않음

#!/usr/bin/python 

import cgi 
import commands 

print "Content-type:text/html" 
print "" 

cmd = "sudo virt-install --cdrom /iso/win7.iso --ram 1024 --vcpu 1 --disk 30 --name wind7 --graphics vnc,listen=127.0.0.1,port=5912,password=123" 

output=commands.getoutput(cmd) 
print "<meta http-equiv='refresh' content='0;url=http://127.0.0.1/abc.html'>" 
도와주세요 를로드

답변

0

나는 백그라운드에서 명령을 시작해야 파이썬이 sudo virt-install이 종료 될 때까지 기다리지 않고 다음 줄을 계속 진행할 수 있다고 생각한다. 문제가 해결되지 않으면 P_NOWAIT 대신 P_DETACH을 시도

import os 
os.spawnl(os.P_DETACH, 'cmd') 

대신 commands

는 모듈 os를 사용합니다.

참고 : 브라우저가 HTML 페이지를 열기 전에 마운트가 작업을 수행 할 수있는 충분한 시간을 가질 수 있도록 리디렉션을 몇 초 지연해야 할 수도 있습니다.

+0

이 방법은 작동하지 않습니다 .... –

+0

심지어 간단한 명령이 실행되지 않습니다. –

+0

그래, 아마도 'spawnl'에 인수를 제대로 전달하는 방법을 알아야 할 것 같습니다 : https://docs.python.org/ 2/library/os.html # os.spawnl – Pavel