簡體   English   中英

腳本運行后在MacOsx上關閉Python進程

[英]Close Python Process on MacOsx after script runs

MacOSx上的此2.7 Python腳本不會關閉Python進程。 腳本運行后,有8個處於休眠狀態的進程。 如何在腳本結束時關閉它們? *.terminate不起作用。

import multiprocessing
newlist = range(1,30)

ULs = [row for row in newlist]
print ULs

def ULtask(ul):
    print 1234

def start_process(): 
  print 'Start', multiprocessing.current_process().name

p_size      = multiprocessing.cpu_count() * 2
pool        = multiprocessing.Pool(processes=p_size, initializer=start_process, maxtasksperchild=400,)
pool_outputs= pool.map(ULtask, ULs)
pool.close() # no more tasks
pool.join()  # wrap up current tasks
# pool.terminate()

print 'Pool    :', pool_outputs
del pool
print "Finished  UL"

嘗試此線程的最后一個技巧( python multiprocessing pool終止 )。 看起來好像把它終止在close和join調用之間。

我在我的機器(mac osx)上嘗試了一個簡單的池,並且該池進程僅通過close&join調用就可以正常終止,但是終止並沒有任何損害。 看起來join會殺死處於關閉狀態或終止狀態的池的進程(如果嘗試在沒有關閉狀態的情況下加入或在終止狀態之前終止,則可以從錯誤消息中看到這一點。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM