Почему сценарий Python прекращает выполнять оператор цикла, но сам процесс жив?

я запускаю скрипт Python распознавания лиц на Ubutnu 18.04 как демон, который снимает с другого сервера с запросом ssh и выполняет операции на них. у меня есть этот код в сценарии Python, который всегда работает, но оператор цикла с условием продолжения прекращает выполняться. сам процесс жив

While true:
 ssh request to another server to recieve pictures 
 time.sleep(1)

я проверяю каталог другого сервера, и изображения присутствуют там

0
задан 4 October 2019 в 09:04

1 ответ

Вы ответили на свой собственный вопрос, Вы выполняете поток как демон. Потоки Python по сути non-deamon, и это лучше всего брошено. Демоны не завершают, когда программа явно завершается при завершении программы, необходимо соединить поток Демона назад с его родителем путем вызова .join ().

Также Python не может использовать потоки из-за GIL, таким образом, лучше использовать многопроцессорный пакет и реализовать Процессы вместо Потоков.

Но необходимо дать нам больше кода, чтобы действительно ответить вопрос.

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)
1
ответ дан 22 December 2019 в 00:26

Другие вопросы по тегам:

Похожие вопросы: