我在 Ubutnu 18.04 上运行人脸识别 Python 脚本作为守护进程,它使用 ssh 请求从另一台服务器获取图片并对其执行操作。我在 Python 脚本中有此代码,它一直在运行,但 while 循环的语句停止执行。进程本身是活动的
While true:
ssh request to another server to recieve pictures
time.sleep(1)
我检查了另一台服务器的目录,图片就在那里
答案1
您自己回答了这个问题,您正在以守护进程的形式运行一个线程。Python 线程本质上是非守护进程的,最好不要使用它。当程序明确终止时,守护进程不会终止,当您终止程序时,您必须通过调用 .join() 将守护进程线程重新加入其父线程。
而且由于 GIL,Python 无法使用线程,所以最好使用多处理包并实现进程而不是线程。
但您需要给我们提供更多代码才能真正回答您的问题。
thread = Thread(target=clientThread, args=(connection, client_address, history))
try:
print('Starting Thread for: ', client_address)
thread.start()
def clientThread (connection, client_address, history):
while True:
data = connection.recv(512).decode('utf8')
dataParser(connection, client_address,history, data)