如何在Python中实现守护进程?

alv*_*zoo 3 python daemon multiprocessing

我正在编写一个小程序,它有一个心跳过程和一个回声过程.我用多处理库实现了这个,但它似乎不起作用.

from multiprocessing import Process
import os
import time

def ticking():
    while True:
        time.sleep(1)
        print 'ticking'

def echo():
    while True:
        a = raw_input('please type something')
        print 'echo: ' + a

if __name__ == '__main__':
    p = Process(target=ticking, args=())
    p.start()
    p.join()

    p = Process(target=echo, args=())
    p.start()
    p.join()
Run Code Online (Sandbox Code Playgroud)

Ilj*_*ilä 5

您创建一个将永远运行的流程join().第二个过程永远不会被创建,因为它join()会永远拖延你的主进程.

如果这是您想要继续的方式,那么您应该首先创建两个进程然后加入它们:

if __name__ == '__main__':
    p1 = Process(target=ticking, args=())
    p1.start()

    p2 = Process(target=echo, args=())
    p2.start()

    p1.join()
    p2.join()
Run Code Online (Sandbox Code Playgroud)