我使用pypacker包编写一个简单的数据包监控应用程序。添加所需的iptables规则后,它会侦听指定的队列并监控流量:
def start_int():
monitor = TrafficMonitor()
proc = Process(target=monitor.dpi_start, args=([0, 1, 2],))
proc.start()
当我使用以下函数启动一个新进程时,进程启动并执行函数dpi_start()但没有按预期工作(即它不会拦截任何数据包)
def start_int():
monitor = TrafficMonitor()
queue = [0, 1, 2]
start = monitor.dpi_start(queue)
proc = Process(target=start)
proc.start()
但是,当我通过将函数调用显式地存储到变量中而将上述函数更改为以下代码时,将此变量传递给Process()一切都按预期工作:
{{1}}
我很好奇是什么原因以及为什么Process()构造函数没有按预期工作?