Python可以产生即使主进程退出也会运行的后台进程吗?

时间:2016-09-02 16:00:41

标签: python multithreading multiprocessing

我想要实现的目标: 我希望我的主进程产生另一个独立的python进程。 像:

for i in range(2):
    p = proces()
    p.start()

sys.exit(0)

我生成的进程应该在后台执行一些任务:) 因为目前,如果我使用multiprocessing库生成一个进程,然后关闭我的主脚本,这些进程也会退出。

1 个答案:

答案 0 :(得分:0)

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永远运行......现在没有办法退出这个过程......)