我想要實現的: 我希望我的主進程產生另一個獨立的python進程。 像:Python即使主進程退出也可以產生運行的後臺進程?
for i in range(2):
p = proces()
p.start()
sys.exit(0)
我的子進程應該因爲一時在後臺運行做一些任務:) ,如果我用產卵庫multiprocessing
的過程,然後關閉我的主要腳本這些進程也退出。
我想要實現的: 我希望我的主進程產生另一個獨立的python進程。 像:Python即使主進程退出也可以產生運行的後臺進程?
for i in range(2):
p = proces()
p.start()
sys.exit(0)
我的子進程應該因爲一時在後臺運行做一些任務:) ,如果我用產卵庫multiprocessing
的過程,然後關閉我的主要腳本這些進程也退出。
import time
import multiprocessing
import sys
def run_forever():
print "ENTERED SUBPROCESS"
while True:
print "HELLO from subprocess"
time.sleep(2)
print "GOODBYE SUBPROCESS"
if __name__ == "__main__":
print "STARTING IN MAIN"
multiprocessing.Process(target=run_forever).start()
time.sleep(1)
print "LEAVING MAIN PROG"
sys.exit()
結果如下輸出
STARTING IN MAIN
ENTERED SUBPROCESS
HELLO
LEAVING MAIN PROG
HELLO
HELLO
HELLO
HELLO
HELLO
...
粗的
你可能有一個新的問題,現在(即你不真的想run_forever永遠跑......沒有辦法,現在退出此過程...)
是的,但如果我關閉控制檯等,我的進程也關閉(任務管理器中沒有python) –
如果關閉shell然後是的,進程停止...這是什麼不同你問......技巧是以不同的方式觸發它(例如,使用cron或Windows調度程序來調度它),或者使用類似http://stackoverflow.com/questions/32404/is-it的方式運行它作爲「windows服務」 - 如果可能的話 - 可以運行一個python-script-as-a-service-in-windows-if-how ......但底線是操作系統將關閉與shell相關的任何子進程是關閉的(這是操作系統,而不是python特有的) –
[啓動一個完全獨立的進程]可能的重複(http://stackoverflow.com/questions/27624850/launch-a-completely-independent-process) – Flippym
我曾經用wxpython製作了一個服務器程序。關閉wxpython窗口後,服務器繼續運行。你是這個意思嗎 ? – Rockybilly
是這樣的@Rockybilly –