我想讓子進程通過linux來運行hma代理。我是Python的新手,所以也許我沒有使用正確的方法。我需要做的是在後臺運行hma,並讓程序檢查我的公共IP是否與啓動程序前相同,並且是否每30分鐘不重新運行hma程序。hma的python子進程
基本上程序需要檢查當前IP然後連接到hma。如果第一個IP匹配第二個IP,即hma尚未連接,則打印等待。如果IP不匹配,則在30分鐘內再次運行hma。這是我迄今爲止的代碼。
import os
import webbrowser
import time
import socket
import urllib2
import subprocess
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
internal = response.read()
print "Internal IP Address is ", internal
hma = ['cd', '/Desktop/hma', ';', './hma-start', '-r']
subprocess.Popen(hma, shell=True)
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
external = response.read()
while (internal == external):
time.sleep(1)
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
external = response.read()
print 'waiting'
while (internal != external):
print 'It changed'
hma = ['cd', '/Desktop/hma', ';', './hma-start', '-r']
subprocess.Popen(hma, shell=True)
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
external = response.read()
print "External IP Address is ", external
我在做什麼錯了?對不起,如果這是完全錯誤的。我是新來的子模塊
這可以工作,但HMA完成連接後,它不會執行time.sleep(WAIT_TIME)。 – 2012-07-27 21:07:55