FreeOPCUa线程:服务器无法关闭

时间:2017-06-21 19:52:32

标签: python multithreading

我目前正在使用此OPC UA实施:https://github.com/FreeOpcUa/

我的问题是我无法停止正在运行的服务器。即使在所有示例中,在调用server.stop()之后,python shell仍保持打开状态。

你们知道如何阻止服务器并杀死线程吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

我对opcua一无所知,所以也许我错了,但你不能在python中杀死一个线程。你需要等到每个线程都正常完成。为了阻止你的线程,他们需要定期检查停止标志。例如,请查看此处:Is there any way to kill a Thread in Python?

答案 1 :(得分:0)

我也使用freeopcua而且server.stop()确实会出错。在例子中

我认为在示例中它是导致问题的嵌入。这是造成这种情况的嵌入。我不知道他们为什么添加它或者是...我知道保持服务器运行,否则python脚本会结束。

我自己这样做是通过在用户输入时等待服务器端的用户输入然后服务器将停止

server.start()
input("enter to stop...\n")
server.stop()

这是在我的服务器端这不是最干净的方式,但确定嵌入是导致你们这个问题的原因。并且有许多潜在的解决方案可以使服务器在没有embed()函数的情况下运行