我試圖用if語句啓動一個進程for item in list
。 if語句(如果滿足條件)將調用傳遞2個參數的函數。該函數然後遍歷另一個列表,爲列表中的每個列表運行子進程調用。現在出於某種原因,我沒有從子流程中獲取任何輸出。如果我在命令行中運行相同的命令,它可以正常工作,並且在我開始執行多處理器之前,它工作正常。任何人都可以解釋發生了什麼?在循環問題中的多處理
這是函數如何被調用。
userlist = (name1, name2, name3)
if condition == True:
for user in userlist:
p = multiprocessing.Process(target=tllocaltF, args=(serverlist, user))
jobs.append(p)
p.start()
這是它被調用函數:
def tllocaltF(domain, user):
#function iterates list of target users locally
print (domain,user) #this prints out the username and domain as expected
print "Targeted Users Found On LocalHost\n"
try:
out = subprocess.check_output(["tasklist", "/V", "/FO", "List", "/FI", "USERNAME eq {0}\\{1}" .format(domain, user)], stderr=subprocess.STDOUT)
users = [item for item in out.split() if domain in item and user in item]
sortedl = set(users)
print sortedl #this is printing set([])
for item in sortedl:
print item
except CalledProcessError as e:
errormessage = e.output
print errormessage
print "\nCompleted"
如果我'打印出'我收到以下信息:信息:沒有任何任務符合指定的標準正在運行。那麼多進程實例對命令做了什麼? – iNoob
你如何運行這段代碼?即在什麼環境下?在某些環境下,與子進程中的打印有關的各種錯誤/問題。 – roippi
我在Windows 7上運行代碼 – iNoob