Имам скрипт на Python на моята хост машина, който се опитва да изпълни друг скрипт в машината за гости. Също така искам скриптът на хоста да захранва скрипта на госта с номер.
На хост машина:
args = shlex.split("vmrun -gu root -gp mohsen77 runProgramInGuest F:/Attacker/Ubuntu1110.vmx /usr/bin/python /home/srastega/Attacker")
Attacker = subprocess.Popen(args, stdin=PIPE, stderr=STDOUT, stdout=PIPE)
out, err = Attacker.communicate("1\n")
exitcode = Attacker.returncode
На машина за гости:
n= int(raw_input("Value for n:"))
t = open('/home/srastega/test', 'a')
t.write("%s"%str(n))
За съжаление програмата за гости излезе с ненулев код за изход: 1 (грешката, наблюдавана на хост машината). Но ако опитам тези два скрипта на една машина, комуникацията работи правилно и първият скрипт предава номер "1" на втория скрипт, който записва този номер във файл.
Някаква идея как да взаимодействаме между хост и гост машина? Благодаря, Самане
vmrun
не предава stdin на подпроцеса; опитвате се да използвате вместо това временен файл или сокети. - person jfs   schedule 26.03.2013