繁体   English   中英

SocketServer multiprocessing.Process在不调用start()的情况下启动

[英]Socketserver multiprocessing.Process is starting without calling start()

我在rpi上的Python脚本有问题。 如果创建流程对象,它将自动启动并阻止其他所有内容。 我希望它在后台运行,并能够通过调用start()方法来启动它。

network_manager.py:

import socketserver

class NetworkManagerHandler(socketserver.StreamRequestHandler):
    def handle(self):
        print("Got some Data!")

class NetworkManagerServer(socketserver.ForkingMixIn, socketserver.TCPServer):
    pass

core.py:

import multiprocessing
from network_manager import NetworkManagerServer, NetworkManagerHandler

HOST, PORT = "100.0.0.1", 11891

network_manager = NetworkManagerServer((HOST, PORT), NetworkManagerHandler)
network_manager_process = 
            multiprocessing.Process(target=network_manager.serve_forever())
# !-> Program is blocking here, but the Server is working. <-! 
network_manager_process.daemon = True
network_manager_process.start()

print("Networkmanager is running. (%s:%s)" % (HOST, PORT))

# network_manager.shutdown()

谢谢。

这个:

network_manager_process = 
            multiprocessing.Process(target=network_manager.serve_forever())

应该是这样的:

network_manager_process = 
            multiprocessing.Process(target=network_manager.serve_forever)

您实际上并不想调用serve_forever ,只想将函数传递给Process对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM